内容整理自互联网,感谢无私奉献知识的大牛们!

例:

说明:

(1)宏名一般用大写; (2)使用宏可提高程序的通用性和易读性,减少不一致性,减少输入错误和便于修改。例如:数组大小常用宏定义; (3)预处理是在编译之前的处理,而编译工作的任务之一就是语法检查,预处理不做语法检查; (4)宏定义末尾不加分号; (5)宏定义写在函数的花括号外边,作用域为其后的程序,通常在文件的最开头; (6)可以用#undef命令终止宏定义的作用域; (7)宏定义允许嵌套; (8)字符串( " " )中永远不包含宏; (9)宏定义不分配内存,变量定义分配内存; (10)宏定义不存在类型问题,它的参数也是无类型的。

带参数

除了一般的字符串替换,还要做参数代换

例如:

(3)宏替换只作替换,不做计算,不做表达式求解; (4)函数调用在编译后程序运行时进行,并且分配内存。宏替换在编译前进行,不分配内存 (5)宏的哑实结合不存在类型,也没有类型转换。 (6)宏展开使源程序变长,函数调用不会 (7)宏展开不占运行时间,只占编译时间,函数调用占运行时间(分配内存、保留现场、

值传递、返回值)。

冷门重点编辑

#define用法

在c语言三种编译预处理功能,C语言三种预处理功能相关推荐

  1. c语言程序只能编译执行吗,c语言的源程序不必通过编译就可以执行对吗

    错误,C语言采用编译方式将源程序转换为二进制的目标代码,编写好一个C程序到完成运行一般经过以下几个步骤,编辑和编译,就是将已经编辑好的源程序翻译成二进制的目标代码,经编译后的得到的二进制代码还不能直接 ...

  2. 编译是检查C语言源程序的,编译是检查C语言源程序的( [1] )错误。

    人体运动的调节体系由( )器官.编译( )系统和( )系统构成. 查C1错太阴病属里实寒证 语言源程29f2f44c97215d2347dc8b894ddd1bb9.jpg 编译1b317cf2b9b ...

  3. 对C语言程序进行编译是指,C语言程序开发步骤

    编译和运行步骤: (1)上机输入和编辑源程序.通过键盘向计算机输入程序,如发现有错误,要及时改正.最后将此源程序以文件形式存放在自己指定的文件夹内(如果不特别指定,一般存放在用户当前目录下),文件用. ...

  4. 易语言MySQL静态编译,我说易语言静态编译太强大……

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 编译后的文件在virscan有14款软件误报 静态编译后我和我的小伙伴惊呆了-- NOD32你别逗我,玷污了这2%,求大神NOD32的报毒信息是怎么回事 ...

  5. c语言提供了三种预处理命令,C语言提供的三种预处理命令

    C语言的三种预处理包括:宏定义(#define).文件包含(#include).条件编译(#if.#else.#endif). 1,不带参数的宏定义: #define 标示符 字符串 在预编译时将宏名 ...

  6. C语言条件编译及编译预处理阶段

    一.C语言由源代码生成的各阶段如下: C源程序->编译预处理->编译->优化程序->汇编程序->链接程序->可执行文件 其中 编译预处理阶段,读取c源程序,对其中的 ...

  7. c语言里有js的预编译环节吗,C语言第十一讲,预处理命令.

    C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 ...

  8. C语言程序设计 | 程序编译与预处理

    目录 一.程序的翻译环境和执行环境 二.详解编译+链接 1.翻译环境 2.编译 2.1预编译/预处理 2.2编译 2.3汇编 三.预处理详解 1.预定义符号 2.#define 2.1#define定 ...

  9. C语言中预编译/预处理的使用

    C 预编译 1. 文件包含 2. 条件编译 2.1 #if #ifdef #endif等 2.2 #ifdef __cplusplus extern "C" { #endif 3. ...

  10. c语言属于结构化程序设计语言,c语言填空题1.结构化程序设计语言的三种基本结构分别是,和.-查字典问答网...

    c语言填空题 1.结构化程序设计语言的三种基本结构分别是,和. 2.C源程序的基本单位是______,一个C源程序中至少应包括一个______. 3.开发一个C程序要经过编辑.__________.连 ...

最新文章

  1. 人力资源部如何运用OKR?看三大层面最新OKR模板
  2. GEO芯片数据探针id转化
  3. 改善java程序的建议
  4. 【HDU4497 GCD and LCM】
  5. TensorLayer的安装
  6. java 十进制 左移,java移位运算符之十进制转二进制
  7. JS实现的文章字符串中某个字符总个数统计在线小工具实例
  8. Mybatis的案例和接口代理开发和模板配置
  9. JavaScript学习(五十七)— arguments对象
  10. 2020计算机网络练习题记录(1)
  11. linux命令如何查看某个文件的大小,Linux查看文件大小5个常用命令
  12. python生成随机字符串包含数字字母_使用python生成一个指定长度的字符串(随机密码),要求包括数字、字母、特殊符号(string库解析)...
  13. 用outlook登录163邮箱的超详细教程
  14. Google快讯使用小记
  15. 2019年华东师范大学计算机与软件工程学院保研夏令营经历
  16. 资源文件冲突error RC2151 : cannot reuse string constants, 61446(0xF006)
  17. 使用vue做一个“淘宝“项目(显示页面)
  18. RK3228H开发之3328芯片手册简单分析
  19. Android 移动动画- TranslateAnimation
  20. css 动画如何保持最终的状态

热门文章

  1. eclipse中安装Tomcat
  2. HCIE-Security Day9:5个实验理解NAT Server
  3. Security+ 学习笔记11 应用程序攻击
  4. HCIE Security 防火墙带宽管理 备考笔记(幕布)
  5. 固定大小采样池中的随机采样证明
  6. Direcshow相关资料
  7. 移动端1px细线问题
  8. springboot 项目 测试环境在独立的tomcat部署
  9. Python3.4下使用sqlalchemy
  10. 探索ASP.NET MVC5系列之~~~1.基础篇---必须知道的小技能