首頁 >後端開發 >C++ >C/C++ 預處理指令

C/C++ 預處理指令

王林
王林轉載
2023-09-08 16:01:021184瀏覽

C/C++ 预处理指令

在 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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除