首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问宏定义的有关问题

2013-10-11 
请教宏定义的问题#define WIN32_LONG_TO_INT64_BEGIN\#ifdef WIN32\#define long __int64\#endifWIN32_LON

请教宏定义的问题
#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

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

热点排行
Bad Request.