启用带有扩展的句柄\u PRAGMA\u PACK\u
我希望gcc处理启用带有扩展的句柄\u PRAGMA\u PACK\u,c,gcc,pragma,C,Gcc,Pragma,我希望gcc处理packpragmas,例如: #define _CTR_PACKING 4 #pragma pack(push, _CRT_PACKING) 默认情况下,MSVC允许这种构造 通过-fms扩展卡发出叮当声 在搜索gcc等价物时,我找到了对宏HANDLE\u PRAGMA\u PACK\u PUSH\u POP和HANDLE\u PRAGMA\u PACK\u WITH\u EXPANSION的引用,但即使通过-DHANDLE\u PRAGMA\u PACK\u EXPANSI
pack
pragmas,例如:
#define _CTR_PACKING 4
#pragma pack(push, _CRT_PACKING)
默认情况下,MSVC允许这种构造
通过-fms扩展卡发出叮当声
在搜索gcc等价物时,我找到了对宏HANDLE\u PRAGMA\u PACK\u PUSH\u POP
和HANDLE\u PRAGMA\u PACK\u WITH\u EXPANSION
的引用,但即使通过-DHANDLE\u PRAGMA\u PACK\u EXPANSION=1添加它们,或者作为环境变量,gcc仍然什么都不做
如何使gcc表现为MSVC,并与-fms extensions
配合使用?gcc宏处理带有扩展的\u PRAGMA\u PACK\u
是gcc目标使用的一个宏,用于指示它是否支持PRAGMA指令中的宏扩展,它不是一个动态启用的开关
相反,您可以使用标准C的\u Pragma
运算符,它将转换为编译器的Pragma指令,并且它支持宏扩展,因为它是语言的一部分。这是一个例子:
#define STR(s) #s
#define _CTR_PACKING 1
#define PACKSTR(x) STR(pack(x))
_Pragma(PACKSTR(_CTR_PACKING))