簡體   English   中英

C ++預處理器

[英]C++ preprocessor

我用unix作為變量名重寫了一個簡單的C ++程序。 但程序編譯失敗了。

#include <iostream>
int main() {
        int unix = 1;
        return 0;
}

在網上搜索了很多之后我到了這個網站,它幫助我說unix是預定義的宏等於1

我想知道所有這些預定義宏的列表。

您可以使用GNU預處理器cpp列出所有預定義的宏:

cpp -dM file.cpp

另請注意, unixlinux等宏是非標准的,您可以使用-ansi編譯標志禁用它們:

g++ -ansi file.cpp

您也可以使用帶有cpp-ansi標志來獲取所有標准預定義宏的列表:

cpp -dM -ansi file.cpp

觸摸mysymdef.h; g ++ -dM mysymdef.h它將生成一個文件mysymdef.h.gch,它將為您的系統提供所有預定義的符號/宏。 文件是二進制的,但有一些編輯它會工作。

詳情請參閱

http://gcc.gnu.org/onlinedocs/cpp/Invocation.html#Invocation

http://gcc.gnu.org/onlinedocs/cpp/System_002dspecific-Predefined-Macros.html

$ uname 
Linux

$ cpp -dM <<<'' | grep unix
#define __unix__ 1
#define __unix 1
#define unix 1

我不認為有這樣一個列表,因為您要求的是每個潛在平台都可以使用的列表。 您可能希望查看預定義的宏以獲取更多信息。 'gcc -dM'可以在Linux上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM