C++宏
时间:2020-02-23 14:30:01 来源:igfitidea点击:
本文中,我们将重点介绍系统编程的一个重要方面-C++宏。
什么是C++宏?
在进入宏之前,让我们首先了解系统编程中预处理器的概念。
"预处理器"可协助编译器并在程序开始编译之前给出指令以预处理某些命令!由于预处理器指令是系统编程语句,因此它们不以分号结尾。
"宏"就是这样的预处理器指令之一。
可以将其视为一段已分配了名称/标签的代码。
因此,每当编译器遇到此名称时,编译器都会用分配给标签/名称的整个代码段替换该名称。
这将导致代码的可重用性,并节省大量的编译时间。
现在,让我们在接下来的部分中重点介绍宏的结构。
在C++中定义宏
宏是在C++编程中使用#define指令定义的。
看看下面的语法!
#define macro_name text/function
我们为宏指定一个名称,该名称是编译器在遇到宏名称后将替换的整个文本/函数的标签。
因此,在执行程序期间,所有宏都将在编译程序之前由指定的文本/函数替换。
C++宏的示例
在下面的示例中,我们使用#define指令定义了一个宏,如下所示:
#include <iostream>
using namespace std;
#define PI 3.14 //macro variable
int main()
{
float area = 0.0;
int r = 2;
area = PI*r*r;
cout<<"Area of the circle: "<<area;
return 0;
}
因此,当编译器遇到宏名称(即" PI")时,它会在编译整个代码之前用3.14替换宏名称。
输出:
Area of the circle: 12.56
现在,我们使用一个函数作为宏的替换值,如下所示。
#include <iostream>
using namespace std;
#define PI 3.14
#define PERIMETER(r) (2*PI*r) //macro function
int main()
{
float peri_meter = 0.0;
int r = 10;
peri_meter = PERIMETER(r);
cout<<"Perimeter of the circle: "<<peri_meter;
return 0;
}
因此,当编译器遇到宏名" PERIMETER"时,它将用定义为该宏的替换值的函数替换该宏。
输出:
Perimeter of the circle: 62.8

