读书人

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

发布时间: 2012-09-14 23:00:48 作者: rapoo

#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

读书人网 >C语言

热点推荐