使用GCC展开定义(Expand defines with GCC)
例如,如何展开或折叠头文件中的定义
#define IOC_IN 0x80000000 #define IOC_WS2 0x08000000 #define _WSAIOW(x,y)(IOC_IN|(x)|(y)) #define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)我尝试做gcc -E file.h > output.h但是这会输出一个空文件。 我正在使用MingW编译器。
我希望这些定义可以像这样取代:
#define IOC_IN 0x80000000 #define IOC_WS2 0x08000000 #define _WSAIOW(x,y)(IOC_IN|(x)|(y)) #define SIO_ASSOCIATE_HANDLE (IOC_IN|(IOC_WS2)|(1))How can I expand or collapse the defines in the header file for example
#define IOC_IN 0x80000000 #define IOC_WS2 0x08000000 #define _WSAIOW(x,y)(IOC_IN|(x)|(y)) #define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)I tried doing gcc -E file.h > output.h however this outputs an empty file. I am using MingW compiler.
I expect the defines to be subsituted like this:
#define IOC_IN 0x80000000 #define IOC_WS2 0x08000000 #define _WSAIOW(x,y)(IOC_IN|(x)|(y)) #define SIO_ASSOCIATE_HANDLE (IOC_IN|(IOC_WS2)|(1))最满意答案
GCC(实际上是预处理器)会忽略您的定义,因为它们未被使用。 尝试追加int x = SIO_ASSOCIATE_HANDLE; 并重新运行gcc。
GCC (the preprocessor actually) ignores your defines because they are unused. Try appending int x = SIO_ASSOCIATE_HANDLE; and rerun the gcc.
更多推荐
发布评论