我改寫了一個簡單的C++程序,使用unix
作爲變量名。但程序編譯失敗。C++預處理器
#include <iostream>
int main() {
int unix = 1;
return 0;
}
我到這個網站上,通過說unix
是預定義宏等於1
幫助我在互聯網上搜索了很多之後。
我想知道所有這些預定義的宏的列表。
我改寫了一個簡單的C++程序,使用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
而且你可以使用-ansi
標誌與cpp
也得到所有標準的預定義宏的列表:
cpp -dM -ansi file.cpp
touch 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
我不認爲有你所要求的那跨越每一個潛在的平臺提供這樣一份名單。你可能想看到Pre-defined macros欲瞭解更多信息。 'gcc -dM'將在Linux上運行。
$ uname
Linux
$ cpp -dM <<<'' | grep unix
#define __unix__ 1
#define __unix 1
#define unix 1
預定義的宏,在**小寫**?看起來很奇怪:o – ereOn 2010-10-18 10:05:35
相反,如果您使用的是IDE,您可以將顯示的宏的顏色設置爲容易識別的顏色。 Visual Studio擁有它。 – 2010-10-18 10:12:10