# 和 ## 宏定义运算符
(1)# 相当于给参数加上引号""
#include <iostream> using namespace std; #define func(x) #x // # 的作用:编译器编译的时候加一个引号""给x,编译后相当于"x" int main() { // 编译后变成:cout << "Hello C++" << endl; 可以使用g++ -E demo01.cpp > demo01.p命令来验证 cout << func(Hello C++) << endl; system("pause"); return 0; }
运行:
使用g++ -E demo01.cpp > demo01.p命令来验证:
编译后demo01.p文件:
(2)## 相当于连接把两个参数拼起来,连接起来
#include <iostream> #include <string> using namespace std; // ## 的作用:编译器编译的时候把 x 和 y 拼起来,就是返回 xy #define func(x, y) x ## y int main() { string value = "Hello C++"; // 编译后变成:cout << value << endl; 可以使用g++ -E demo01.cpp > demo01.p命令来验证 cout << func(va, lue) << endl; // func(va, lue) 返回 value system("pause"); return 0; }
运行:
使用g++ -E demo01.cpp > demo01.p命令来验证:
编译后demo01.p文件:
所以,执行的时候就输出了 value 的值 Hello C++ 了