C++基础--第二十章预处理器

预处理器在编译前处理指令,如#define用于创建符号常量(宏),#if/#else进行条件编译,防止头文件重复声明。预定义宏如__LINE__,__FILE__,__DATE__,__TIME__提供编译时信息。示例展示了宏定义、参数宏和条件编译的使用。
摘要由CSDN通过智能技术生成

预处理器是一些指令,指示编译器在实际编译之前所需完成的预处理。

所有的预处理器指令都是以“#开头,只有空格字符可以出现在预处理指令之前。预处理指令不是 C++ 语句,所以它们不会以分号(;)结尾。

例如:#include、#define、#if、#else、#line 等

#define预处理

#define 预处理指令用于创建符号常量。该符号常量通常称为宏,这种定义方式也被称为宏定义

一般形式:#define 常量名 值

宏常量

作用:预处理时,会用值来代替程序中出现过的常量名

例:

#include <iostream>
#define PI 3.14159

int main() {
    double radius = 5.0;
    double area = PI * radius * radius;

    std::cout << "The area of a circle with radius " << radius << " is: " << area << std::endl;

    return 0;
}

参数宏

作用:可以使用 #define 来定义一个带有参数的宏(函数)

例:

#include <iostream>

using namespace std;



#define MIN(a,b) (a<b ? a : b)



int main ()

{

   int i, j;

   i = 100;

   j = 30;

   cout <<"较小的值为:" << MIN(i, j) << endl;



    return 0;

}

条件编译(头文件守卫)

作用:避免重复声明头文件

格式

#ifndef XXXX

#define XXXX

#endif

XXXX一般格式是:如果头文件名是mymath.h,则XXXX应该写为_MYMATH_H_

避免重复声明,重复声明头文件的问题

C++中的预定义宏

常用:

        _WIN64:判断当前编译环境是否为 64 位的 Windows 操作系统

        _WIN32:判断当前编译环境是否为 32 位的 Windows 操作系统

其他:

        __LINE__:这会在程序编译时包含当前行号

        __FILE__:这会在程序编译时包含当前文件名

        __DATE__:这会包含一个形式为 month/day/year 的字符串,它表示把源文件转换为目标代码的日期。

        __TIME__:这会包含一个形式为 hour:minute:second 的字符串,它表示程序被编译的时间。

例:

#include <iostream>

using namespace std;



int main ()

{

    cout << "Value of __LINE__ : " << __LINE__ << endl;

    cout << "Value of __FILE__ : " << __FILE__ << endl;

    cout << "Value of __DATE__ : " << __DATE__ << endl;

    cout << "Value of __TIME__ : " << __TIME__ << endl;



    return 0;

}

结果

Value of __LINE__ : 6

Value of __FILE__ : test.cpp

Value of __DATE__ : Feb 28 2011

Value of __TIME__ : 18:52:48

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值