C/C++ 您当前所在位置:首页 > C/C++ > 宏的定义与说明

宏的定义与说明

陈成 陈成 2020-07-16 21:01:08 C/C++ 171人已围观

简介 写好了代码,将代码变成可执行程序中间大概有几个步骤。1、替换。2、编译。3、连接。为了使代码方便或者容易阅读,我们会在代码里定义一些符号,这些符号可以代替某个我们想要的符号,在编译之前会先执行一个替换功能,把符号替换成我们要的值,然后才开始编译。宏就与这个替换有关系。

写好了代码,将代码变成可执行程序中间大概有几个步骤。1、替换。2、编译。3、连接。为了使代码方便或者容易阅读,我们会在代码里定义一些符号,这些符号可以代替某个我们想要的符号,在编译之前会先执行一个替换功能,把符号替换成我们要的值,然后才开始编译。宏就与这个替换有关系。

无参数的宏定义

#define TRUE 1

通过#号加一个define关键字,后面跟上标识符和要替换的值,注意空格。这样就定义好了一个无参数的宏。下面定义几个例子。

#define DEBUG 1
#define PI 3.141592654
#define PATH "abc/a.txt"

需要注意的是,这个只做替换,不会做任何检查,如果定义不有问题,在这个阶段不会报错,要到编译的时候错误才会显示出来。

带参数的宏定义

#define MAX(A,B) ((A) > (B) ? (A) : (B))
int main(int argc, char* argv[])
{
    int x = MAX(1, 2);
    printf("%d", x);
    return 0;
}

int x = MAX(1, 2);将会替换成int x = ((1) > (2) ? (1) : (2));

带参数的宏需要注意

1、这个与函数是有区别的,函数会分配堆栈空间,这个只是单纯的替换;

2、末尾不能有分号;

3、宏的名称与后面的左圆括号不能有空白;

4、define可以替代多行代码,但后面要加上反斜杠“\”

文章评论

发送

站点信息

  • 上线时间:2020年05月30日
  • 网站程序:自建框架
  • 博客模板:今夕何夕
  • 文章统计43篇文章
  • 评论统计0条评论
  • 留言统计0条留言
  • 统计数据:百度统计