读书人

请问宏定义的有关问题

发布时间: 2013-10-11 14:52:39 作者: rapoo

请教宏定义的问题
#define WIN32_LONG_TO_INT64_BEGIN\
#ifdef WIN32\
#define long __int64\
#endif

WIN32_LONG_TO_INT64_BEGIN
---------------------
你好,像这样宏定义里边有宏定义,编译报错
error C2121: '#' : invalid character : possibly the result of a macro expansion

我就是想要弄的简写点,该怎么写才对呢?
[解决办法]
#define WIN32_LONG_TO_INT64_BEGIN \
#ifdef WIN32 \
#define long __int64 \
#endif
预编译的时候 看到的指令是
#define WIN32_LONG_TO_INT64_BEGIN #ifdef WIN32 #define long __int64 #endif

于是 Over
[解决办法]
编译选项加/EP /P,重新编译,查看宏展开后对应的.i文件。gcc加-E

[解决办法]
宏定义里
不能有预编译指令
代码生成吧,自己做个预预编译器,先处理这种预编译器不支持的宏

读书人网 >C++

热点推荐