error: macro names must be identifiers

本文介绍了如何正确使用C预处理器来避免宏定义错误,并提供了解决方案。

root@ubuntu:/home/zhangbin/qt/qtSDL/misc/unpv12e/lib# make
gcc -g -O2 -D_REENTRANT -Wall   -c -o connect_nonb.o connect_nonb.c
In file included from connect_nonb.c:1:
unp.h:113:8: error: macro names must be identifiers

这是c程序,我用到了

#ifdef 0
...
#endif

And I get this error

error: macro names must be identifiers

意思是不能用0,必须用一个确定的标识符。

就像这样

#ifdef NO_CHANCE_THAT_THIS_SYMBOL_WILL_EVER_EXIST
: : :
#endif


改成#if 0

        #endif

就好了。

=====================

参考

http://stackoverflow.com/questions/426736/error-macro-names-must-be-identifiers-using-ifdef-0


The #ifdef directive is used to check if a pre-processor symbol is defined. It's possible that your C compiler allows pre-processor symbols that start with a digit (but unlikely since it would seriously screw up the parser) and your C++ compiler doesn't.

The correct form for using the pre-processor to block out code is:

#if 0
: : :
#endif

or

#ifdef NO_CHANCE_THAT_THIS_SYMBOL_WILL_EVER_EXIST
: : :
#endif
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风来不如迎风去

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值