[英]C++ preprocessor
我用unix
作為變量名重寫了一個簡單的C ++程序。 但程序編譯失敗了。
#include <iostream>
int main() {
int unix = 1;
return 0;
}
在網上搜索了很多之后我到了這個網站,它幫助我說unix
是預定義的宏等於1
。
我想知道所有這些預定義宏的列表。
您可以使用GNU預處理器cpp
列出所有預定義的宏:
cpp -dM file.cpp
另請注意, unix
, linux
等宏是非標准的,您可以使用-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.