首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言細節31:宏生命週期、#error、#pragma message、宏註釋限制

     編輯:關於C語言

C語言細節31:宏生命週期、#error、#pragma message、宏註釋限制

1. #define 與 #undef:宏生命週期

#if TARGET_OS != LINUX
#error "This code only supports Linux!"
#endif

遇到#error編譯器立即停止,輸出錯誤信息。用於編譯期配置檢查。

3. #pragma message:編譯期提示信息

編譯時輸出信息到構建日誌,不停止編譯。用於確認宏配置、版本標識、棄用警告。

4. 宏定義中不能有註釋

預處理順序:
1. 移除註釋
2. 處理宏定義/展開
因此宏體不能包含註釋符號,否則展開後殘留//或/*導致語法錯誤。

5. 其他細節

  • # define(#與define有空格)合法,#不必在行首
  • #define sizeof合法(遮蔽關鍵字),#define int非法
  • #if 0...#endif常用於代碼塊級註釋

驗證輸出

z = 4
// 編譯時輸出:note: #pragma message: _RUN macro activated!

總結

  1. 宏生命週期:#define開始,#undef/文件結束結束
  2. #error阻斷編譯,#pragma message僅提示
  3. 宏體不可含註釋,預處理順序決定
  4. 善用#pragma message管理複雜宏配置
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved