<p>预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。</p>
讯享网
所有的预处理器指令都是以#开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号结尾。C++ 支持很多预处理指令,比如 #include、#define、#if、#else、#line 等。
#define 预处理指令用于创建符号常量。该符号常量通常称为宏,指令的一般形式是:
讯享网#define macro-name replacement-value
当这一行代码出现在一个文件中时,在该文件中后续出现的所有宏都将会在程序编译之前被替换为 replacement-value。例如:
使用#define 来定义一个带有参数的宏,如下所示:
讯享网
当上面的代码被编译和执行后结果:
较小的值为:10
对部分程序源代码选择性编译。
讯享网
举例如下:
当上面的代码被编译和执行时,它会产生下列结果:
讯享网In main function The minimum is 10 Coming out of main function
# 和 预处理运算符在 C++ 和 ANSI/ISO C 中都是可用的。# 运算符会把 replacement-value转换为用引号引起来的字符串。
举例如下:
当上面的代码被编译和执行后结果:
讯享网hello C++
C++ 预处理器把下面这行:
cout << MKSTR(hello C++) << endl;
转换成了:

讯享网cout << “hello C++” << endl;
运算符用于连接前后两个参数
#define CONCAT( x, y ) x y
举例如下:
讯享网
当上面的代码被编译和执行后结果:
10
C++ 预处理器把下面这行:
讯享网cout << concat(x, y);
转换成了:
cout << xy;
宏 描述
LINE 这会在程序编译时包含当前行号。
FILE 这会在程序编译时包含当前文件名。
DATE 这会包含一个形式为 month/day/year 的字符串,它表示把源文件转换为目标代码的日期。
TIME 这会包含一个形式为 hour:minute:second 的字符串,它表示程序被编译的时间。
举例如下:
讯享网

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/194601.html