C/C++中的內置宏定義及跨平臺編程隨筆

ANSI C標準中有幾個標準預約義宏(也是經常使用的): linux

__LINE__:在源代碼中插入當前源代碼行號; 
__FILE__:在源文件中插入當前源文件名; 
__DATE__:在源文件中插入當前的編譯日期 
__TIME__:在源文件中插入當前編譯時間; 
__STDC__:當要求程序嚴格遵循ANSI C標準時該標識被賦值爲1; 
__cplusplus:當編寫C++程序時該標識符被定義。 windows

其餘一些微軟的C++編譯器內置的宏定義能夠參考:http://msdn.microsoft.com/en-us/library/b0084kay(VS.80).aspx 

值得一提的是,在MinGW中的g++編譯器,實際上也內置了WIN32和_WIN32的宏,這與一般理解的g++編譯器用於linux的有些不一樣,通常不容易想到windows下的g++也會內置WIN32宏,對於編寫跨平臺的程序就須要注意一下了。 spa

另外,在windows下能夠使用_MSC_VER這個宏來區分是微軟的編譯器仍是其餘種類的編譯器。對於使用多種編譯器編譯程序時使用不一樣的代碼塊有用。 get

相關文章
相關標籤/搜索