#include // 预处理器用于在编译前修改代码 // 用途1: 宏定义,在编译前将所有的 PI 替换为3.14159 #define PI 3.14159 // 用途2: 条件编译 #define DEBUG // 用途3: #运算符 // "#x"代表将x作为字符串 #define MKSTR(x) #x // 用途4: ##运算符 // 在编译时将两个参数的名称拼接起来,"x ## y"被拼接为xy #define CONCAT(x, y) x ## y using namespace std; int main () { // 用途1: 宏定义,在编译前将所有的 PI 替换为3.14159 cout << "Value of PI :" << PI << endl; // 用途2: 条件编译 #ifdef DEBUG // 如果预定义过DEBUG,那么编译下面的代码 cout << "DEBUG Mode" << endl; #endif // 用途3: 将括号中的"HELLO WORLD!"作为字符串 cout << MKSTR(HELLO WORLD!) << endl; // 用途4: 在编译时将两个参数的名称拼接起来,"x ## y"被拼接为xy int xy = 100; cout << CONCAT(x, y) << endl; // 默认的预定义 // __LINE__: 代码的行号 cout << "Value of __LINE__ : " << __LINE__ << endl; // __FILE__: 代码的文件名 cout << "Value of __FILE__ : " << __FILE__ << endl; // __DATE__: 当前日期 Mon DD YYYY cout << "Value of __DATE__ : " << __DATE__ << endl; // __LINE__: 时间戳 HH:MI:SS cout << "Value of __TIME__ : " << __TIME__ << endl; return 0; }