error: macro names must be identifiers

来源:互联网 发布:三国豪侠传单机版mac 编辑:程序博客网 时间:2024/06/17 15:48

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