c程序中宏展开是在什么时候进行的?

宏展开是在预处理阶段进行的。

C程序由源程序变为可执行文件的三个阶段是:

预处理阶段,由预处理器对程序文本中的宏进行展开。

编译阶段,由编译器对经过预处理后的程序进行编译,并生成目标文件

链接阶段,则链接器对目标文件和用到的函数库文件进行链接,生成可执行文件。

因此,宏展开是在预处理阶段完成的。

2efb6f13a18333fea9b01c0acceada5.png

扩展资料:

宏定义

宏定义是C提供的三种预处理功能之一:宏定义、文件包含和条件编译

无参数宏定义:

宏观定义又称宏观替代,宏观替代,简称“宏观”。

格式:#定义标识符字符串

标识符称为符号常量,也称为“宏名称”。

预处理(预编译)也称为宏展开:用字符串替换宏名。

掌握宏概念的关键是替换。一切都以改变为前提,做任何事之前都要改变,准确理解“改变”的必要性。

复杂的如下所示。下面的宏定义带有参数,多行宏定义,在Linux内核源代码中有很多。

sizeof也是一个宏定义。

推荐教程:《C语言》

更多相关文章

  1. C语言中在main函数中定义的变量是全局变量么
  2. c++中类的定义是什么
  3. c语言中定义结构体的保留字是什么?
  4. 三分钟了解C语言中自定义的标识符及规则
  5. C语言变量的定义包括变量存储类型和变量的什么?
  6. c语言中要求对变量作强制定义的主要理由是什么?
  7. golang中定义不定长数组的方法
  8. golang怎么自定义错误
  9. Golang如何定义error

随机推荐

  1. JAVA实现 springMVC方式的微信接入、实现
  2. 【Java_SSM】(四)Eclipse中通过maven引入ja
  3. 20162305 实验二 Java面向对象程序设计
  4. jsp权限菜单绑定的基本实现
  5. javaweb--Tomcat>>基于windows 系统源码
  6. request对象和response对象
  7. javadoc生成说明文档
  8. Spring Data+JPA (Maven构建Java工程)
  9. 通俗编程——白话NIO之Buffer
  10. java配置使用数据源