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