预处理失效

liaomingxue none 服务器端工程师  2010-08-13 10:26:55
在cygwin环境下使用软件spin.exe,spin.exe对下来类C的宏:

#define N 3 /* asllll */
int a[N];

以及

#define freelock(x) x=0

不支持,前者提示说N不是一个标识符,我估计是注释的问题,去掉注释就通过了;后者提示“preprocessing failed”错误,不明白是怎么回事。

在此请教各位。
...全文
113 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
kostion 2010-08-14
应该不是BUG,这些东西都已经成熟了,不可能有这么低级的BUG,可能就是这个特性
回复
yzx714 2010-08-14
[Quote=引用 9 楼 liaomingxue 的回复:]

但奇怪的是,我用cc编译同样内容的.c文件是没有问题的;
我用的软件是spin.exe,需要调用预处理器的部分功能
所以问题可能是spin.exe本身的问题?
[/Quote]恩,肯定是一个bug。
回复
liaomingxue 2010-08-14
但奇怪的是,我用cc编译同样内容的.c文件是没有问题的;
我用的软件是spin.exe,需要调用预处理器的部分功能
所以问题可能是spin.exe本身的问题?
回复
低版gcc也有这个问题,这个是编译器Bug,注释改到上一行吧.
回复
华悟空 2010-08-13
vs2005 中编译通过……
回复
AlanBruce 2010-08-13
宏定义后面一般不推荐加注释

你的编译器问题

但这也算是个习惯吧
回复
cattycat 2010-08-13
估计是cygwin的问题,gcc编译器和vs都没这个问题。
回复
chaoliu1024 2010-08-13
编译器的问题
回复
东大坡居士 2010-08-13
编译器的问题吧,我的cygwin好着呢
回复
chjh0540237 2010-08-13
cygwin编译器没用过
回复
thehunters 2010-08-13
你的版本编译器不支持注释吧
回复
发动态
发帖子
C语言
创建于2007-09-28

6.2w+

社区成员

C语言相关问题讨论
申请成为版主
社区公告
暂无公告