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

C/C++ 預處理器 # 與 ## 運算符:字符串化與標記粘合

     編輯:關於C++

# 字符串化運算符

在宏定義中,#參數 將實參轉換為字符串字面量(自動加雙引號、轉義)。


## 標記粘合運算符

在宏定義中,前綴##後綴 將兩個標記合併為一個標記(無空格)。

#define LOG(var) std::cout << #var " = " << var << std::endl;
int x = 42;
LOG(x); // std::cout << "x" << " = " << x << std::endl;

#define DECL_ARRAY(name, size) int name##_arr[size];
DECL_ARRAY(buf, 1024); // int buf_arr[1024];

注意事項

  • ## 不能出現在宏定義的首尾。
  • 粘合後必須形成合法預處理標記(標識符、關鍵字、常數等)。
  • # 和 ## 可嵌套使用,但需注意展開順序(參數先完全展開,再應用 #/##)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved