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

#define 后面的 # 号,该怎么解决

2012-09-14 
#define 后面的 # 号C/C++ code#define PACK_STRUCT_BEGIN #pragma pack(push, 1)#define PACK_STRUCT_END

#define 后面的 # 号

C/C++ code
#define PACK_STRUCT_BEGIN #pragma pack(push, 1)#define PACK_STRUCT_END #pragma pack(pop)

我打算定义两个宏,如上,我需要的效果是 PACK_STRUCT_BEGIN 等效于 #pragma pack(push, 1),可是因为 # 号在宏定义中是有特殊作用的,就是将符号转换成字符串,所以我的宏应该是变成了这样 "pragma" pack(push, 1),总之就是不正常了。

现求助各位大侠,如何能实现我希望的效果?或者如果#define用不了是否有替代的方案?

[解决办法]
不可能.

#pragma也是宏.
[解决办法]
楼主,省省吧,宏不可以生成宏。
但是,某些编译器可以支持__pragma

热点排行