预处理失效

liaomingxue 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”错误,不明白是怎么回事。

在此请教各位。
...全文
216 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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 中编译通过……
  • 打赏
  • 举报
回复
宏定义后面一般不推荐加注释

你的编译器问题

但这也算是个习惯吧
cattycat 2010-08-13
  • 打赏
  • 举报
回复
估计是cygwin的问题,gcc编译器和vs都没这个问题。
chaoliu1024 2010-08-13
  • 打赏
  • 举报
回复
编译器的问题
东大坡居士 2010-08-13
  • 打赏
  • 举报
回复
编译器的问题吧,我的cygwin好着呢
chjh0540237 2010-08-13
  • 打赏
  • 举报
回复
cygwin编译器没用过
thehunters 2010-08-13
  • 打赏
  • 举报
回复
你的版本编译器不支持注释吧

70,020

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧