公司在 Windows 平台下,使用 GCC编译器编译for Mipus 的CPU,在 Linux 上运行。因为开发环境是使用VC6,我们是在VC6下写好了程序在拷贝到机器上测试的。
在使用GCC的过程中,发现了两个问题
1、如果受到编译的文件最后一行不是空白行,那么就会抛出一个警告,说什么no new line at the end of file
2、C中如果某行的最后一个是“\“它是作为续行符的。在一行注释(以//开头)如果最后是“\“那么下一行也是作为注释,如果最后一个不是“\“那么下一行就不是注释。例如:
在 VC6 编译器中
1 ....
2 //.................................\空格
3 ......................
那么第 3 行并不是作为注释,
但是如果是使用 GCC 编译,那么第 3 行就是作为注释行了
3、如果使用下面的代码,GCC 编译会出现一个警告
LPCTSTR psz = ....;
if(psz != NULL) //这里会出现一个警告
{
//...
}