「C/C++」C/C++宏定义#define

在这里插入图片描述

✨博客主页:何曾参静谧的博客
文章专栏:「C/C++」C/C++程序设计

目录

  • 术语说明
  • 宏定义 #define
  • 定义常量
  • 定义函数
  • 定义代码块
  • 常用标识符
  • 用宏包含头文件


术语说明

定义宏是一种预处理器指令,它可以将一些代码片段或者常量直接替换为另一些内容,在编译过程中被展开为相应的代码或者值。通过定义宏,我们可以简化编写代码的工作量,并且通过修改宏的定义,可以方便地进行代码的修改。例如,我们可以使用#define来定义宏:

宏定义 #define

注意事项:

  • 宏定义的名称通常使用大写字母,并使用下划线来分隔单词。
  • 宏定义必须以 #define 开头,定义的常量、函数、代码块等必须是合法的C语句。
  • 宏定义可以包含参数,从而使得宏可以在不同的场景下进行重用。
  • 宏定义可以使用反斜杠(\)对代码进行换行,以便于阅读和维护。
  • 宏定义在代码被编译之前就会被预处理器处理,所以宏定义是一种文本替换的手段,替换的过程是简单的字符串替换,因此要特别注意宏定义带来的潜在问题,比如优先级、参数的多次计算等等。

定义常量

这个宏定义了一个名为 PI 的常量,并将其值设定为 3.1415926。
例子中PI会被替换成3.14159

#define PI 3.1415926

定义函数

这个宏定义了一个名为 MAX 的函数,并使用三目运算符定义了其功能,即返回两个参数中的较大值。
例子中,MAX(a,b)会被替换成((a)>(b)?(a):(b))。

#define MAX(a, b) ((a) > (b) ? (a) : (b))

定义代码块

在预处理过程中,宏会被直接替换成相应的值

#define DO_SOMETHING { \
    printf("Hello, "); \
    printf("world!"); \
}

常用标识符

__FILE__:文件名
__LINE__:行号
__FUNCTION__:函数名
__DATE__:编译日期
__TIME__:编译时间
_MSC_VER:编译器版本号

用宏包含头文件

#define INCLUDE_STRING_HEADERS \
    #include         \
    #include          \
    #include 

在这里插入图片描述

你可能感兴趣的:(c语言,c++,开发语言)