_WIN32、__linux__...预处理器宏如何工作?

问题描述 投票:0回答:1

像GCC这样的C编译器如何定义预处理器宏来检测当前操作系统?

我查看了 GCC 的源代码,发现了 this

builtin_define ("_WIN32");
但我不确定这是否是定义宏的地方。

c gcc c-preprocessor
1个回答
0
投票

TL;DR:基本上是的。内置宏在目标描述头文件中定义。

经常有一本精美的手册可供阅读;在本例中,它是GCC 内部手册。 (具体来说,在运行时目标规范部分,但不要从那里开始阅读;您需要一些上下文。)

有一个完整的 GCC 文档纲要,以防您需要更多信息。 (内部文档位于该页面的底部。)

(如果您习惯使用 GNU 信息阅读器并且使用的是 Ubuntu/Debian 系统,则可以使用

sudo apt-get install gcc-doc
安装当前 GCC 版本的 GCC 文档;其中包括 GCC 内部文档。)

© www.soinside.com 2019 - 2024. All rights reserved.