请教宏定义的问题
#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
[解决办法]
宏定义里
不能有预编译指令
代码生成吧,自己做个预预编译器,先处理这种预编译器不支持的宏