在 C 或 C 中,我們發現不同的行以 (#) 符號開頭。這些稱為預處理指令。這些行在編譯程式碼之前的預處理階段進行處理。在這裡我們將看到三種不同類型的預處理指令。這些是 -
有時我們在程式中定義了一些巨集。使用條件編譯指令。我們可以檢查巨集是否被定義。我們也可以控制它們。因此,如果定義了一個巨集,則執行某些任務,否則執行其他類似的任務。
條件編譯指令類似於#ifdef-#elif-#else-#endif。每個#ifdef 區塊必須以#endif 結束。 #elif 或 #else 是可選的。
#include <iostream> #define MY_MACRO 10 using namespace std; int main() { #ifdef MACRO cout << "MACRO is defined" << endl; #elif MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #endif }
MY_MACRO is defined, value is: 10
透過鍵入#line 使用行控制指令。有時我們會在首選行號方面遇到一些錯誤。我們可以使用該指令更新行號。如果我們放置它並將當前行更改為 200,那麼之後的行將從 201 開始移動。
#include <iostream> using namespace std; int main() { cout<< "Current line is: " << __LINE__ << endl; #line 200 cout << "Hello" << endl; cout << "World" << endl; cout<< "Current line is: " << __LINE__ << endl; }
Current line is: 5 Hello World Current line is: 202
error指令用於在編譯之前顯示錯誤。假設應該定義一個巨集,但如果未定義,則可以顯示錯誤訊息。可以使用#error來實作。
#include <iostream> using namespace std; int main() { #ifdef MY_MACRO cout << "MY_MACRO is defined, value is: " << MY_MACRO; #else #error MY_MACRO should be defined #endif }
#error MY_MACRO should be defined
以上是C/C++ 預處理指令的詳細內容。更多資訊請關注PHP中文網其他相關文章!