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

C/C++ 預處理指令

王林
發布: 2023-09-08 16:01:02
轉載
1190 人瀏覽過

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
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板