使用GCC展开定义(Expand defines with GCC)

编程入门 行业动态 更新时间:2024-10-07 14:26:57
使用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.

更多推荐

本文发布于:2023-08-07 12:02:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1464135.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:定义   GCC   defines   Expand

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!