半个我

hengai的BLOG
随笔 - 17, 文章 - 4, 评论 - 134, 引用 - 2

导航

<2005年11月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

留言簿(4)

随笔分类

随笔档案

文章分类

文章档案

相册

VCKBASE

搜索

最新评论

阅读排行榜

评论排行榜

GCC 的怪异

    公司在 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)        //这里会出现一个警告
{
  //...
}

posted on 2005-11-03 18:46 hengai 阅读(3426) 评论(5)  编辑 收藏

评论

# re: GCC 的怪异

hoho,说明vc不够兼容标准。标准规定3是注释行的。
2005-11-03 20:54 | 一笑

# re: GCC 的怪异

不会吧, 在VC里//\后的下一行是注释来的,只是IDE没把它变绿已而.
VC的注释错主要是这个:
#define _COMMENT(S)  S##/
#define COMMENT  _COMMENT(/)

COMMENT int i; <--注释
2005-11-03 22:02 | hpho

# re: GCC 的怪异

我最近也老是遇见这样的东西,不过我都以为是编译器有毛病呢,原来如此
2005-11-04 10:58 | 铅笔谬书

# re: GCC 的怪异

eclipse里面也有这种问题,hpho研究真是深入
2005-11-04 11:00 | 铅笔谬书

# re: GCC 的怪异

你到文件的最后多敲几个回车就好了.
2007-01-18 12:46 | hdqqq
标题  
姓名  
主页
验证码 *
内容   
  登录  使用高级评论  Top
[使用Ctrl+Enter键可以直接提交]