C C 中的內建巨集定義及跨平台程式設計隨筆

2021-09-30 08:56:58 字數 491 閱讀 5100

ansi c標準中有幾個標準預定義巨集(也是常用的):

__line__:在源**中插入當前源**行號;

__file__:在原始檔中插入當前源檔名;

__date__:在原始檔中插入當前的編譯日期

__time__:在原始檔中插入當前編譯時間;

__stdc__:當要求程式嚴格遵循ansi c標準時該標識被賦值為1;

__cplusplus:當編寫c++程式時該識別符號被定義。

其他一些微軟的c++編譯器內建的巨集定義可以參考:

值得一提的是,在mingw中的g++編譯器,實際上也內建了win32和_win32的巨集,這與通常理解的g++編譯器用於linux的有些不同,一般不容易想到windows下的g++也會內建win32巨集,對於編寫跨平台的程式就需要注意一下了。

另外,在windows下可以使用_msc_ver這個巨集來區分是微軟的編譯器還是其他種類的編譯器。對於使用多種編譯器編譯程式時使用不同的**塊有用。

C C 中的預定義巨集

標準預定義巨集 內容 file 代表當前源 檔名的字串文字 包含了詳細路徑,如 g program study c main.cpp line 代表當前源 中的行號的整數常量 date 進行預處理的日期 mmm dd yyyy 形式的字串文字,如 aug 27 2017 time 原始檔編譯時間 格...

C C 程式設計知識 巨集定義的有效範圍

在c c 中,巨集定義的有效範圍被規定為當前檔案內有效。當前檔案內有效 分為兩種情況,一種是定義在標頭檔案中,另一種是定義在原始檔中。1 在標頭檔案中的巨集定義,隨著標頭檔案一同被包含到原始檔中時,此時巨集定義在該原始檔中有效,當頭檔案中的巨集定義隨著該標頭檔案一起被包含到另乙個標頭檔案中,而這另乙...

C C 關於 在巨集定義中的用法

在c c 的巨集定義中,存在特殊的作用1.運算子將乙個巨集的引數轉換為字串字面量。它僅允許出現在帶引數的巨集的替換列表中。cpp view plain copy include define print str s printf s s n s intmain 輸出 s1 aaa 注 printf ...