【C++编程】C与C++的宏定义

101 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第20天,点击查看活动详情.

 宏(英语:Macro),是一种批量处理的称谓。  #define是C语言中提供的宏定义命令,其主要目的是为程序员在编程时提供一定的方便,并能在一定程度上提高程序的运行效率。 宏定义 命令格式: (1)、简单的宏定义:

#define <宏名>  <字符串>
例: #define PI 3.1415926

(2)、带参数的宏定义

#define <宏名> (<参数表>) <宏体>
例: #define A(x) x

    一个标识符被宏定义后,该标识符便是一个宏名。
    这时,在程序中出现的是宏名,在该程序被编译前,先将宏名用被定义的字符串替换,这称为宏替换,
    替换后才进行编译,宏替换是简单的替换。

宏替换发生的时机:  当我们在一个集成的开发环境如Turbo C中将编写好的源程序进行编译时,实际经过了预处理、编译、汇编和连接几个过程。其中预处理器产生编译器的输出,它实现以下的功能: (1)文件包含   可以把源程序中的#include 扩展为文件正文,即把包含的.h文件找到并展开到#include 所在处。 (2)条件编译   预处理器根据#if和#ifdef等编译命令及其后的条件,将源程序中的某部分包含进来或排除在外,通常把排除在外的语句转换成空行。 (3)宏展开   预处理器将源程序文件中出现的对宏的引用展开成相应的宏 定义,即本文所说的#define的功能,由预处理器来完成。  经过预处理器处理的源程序与之前的源程序有所有不同,在这个阶段所进行的工作只是纯粹的替换与展开,没有任何计算功能,所以在学习#define命令时只要能真正理解这一点,这样才不会对此命令引起误解并误用。

PS4:Turbo C:   Turbo C是美国Borland公司的产品,Borland公司是一家专门从事软件开发、研制的大公司。该公司相继推出了一套 Turbo系列软件, 如Turbo BASIC, Turbo Pascal, Turbo Prolog,主要用于C语言编译。

界面展示

参考资料:

【博客园Boblim】C++宏定义详解

【王珂的个人笔记】C++中的宏定义