C语言中define的用法

2016-01-06 15:00  来源: 博客园

define是C语言中的预处理命令,它用于宏定义,可以提高源代码的可读性,为编程提供方便。

预处理命令以“#”号开头,如包含命令#include,宏定义命令#define等。一般都放在源文件的前面,它们称为预处理部分。

所谓预处理是指在进行编译之前所作的工作。预处理是C语言的一个重要功能,它由预处理程序负责完成。当对一个源文件进行编译时,系统将自动引用预处理程序对源程序中的预处理部分作处理,处理完毕自动进入对源程序的编译。

宏的定义

在C或C++语言源程序中允许用一个标识符来表示一个字符串,称为“宏”。被定义为“宏”的标识符称为“宏名”。在编译预处理时,对程序中所有出现的“宏名”,都用宏定义中的字符串去代换,这称为“宏代换”或“宏展开”。宏定义是由源程序中的宏定义命令完成的。宏代换是由预处理程序自动完成的。

在C或C++语言中,“宏”分为有参数和无参数两种。

无参数宏定义

无参数宏就是不带参数,其定义的一般形式为:

#define 标识符、字符串

“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。

例如:

#define PI 3.14

它的作用是指定标识符PI来代替常数3.14。在编写源程序时,所有用到3.14的地方都可用PI代替,而对源程序作编译时,将先由预处理程序进行宏代换,即用3.14去置换所有的宏名PI,然后再进行编译。

宏定义是用宏名来表示一个字符串,在宏展开时又以该字符串取代宏

c语言define需要分号骂,C语言中define的用法相关推荐

  1. #define c# 报错_c语言中#define的用法

    c语言中#define的用法 C语言中,可以用 #define 定义一个标识符来表示一个常量.其特点是:定义的标识符不占内存,只是一个临时的符号,预编译后这个符号就不存在了. 预编译又叫预处理.预编译 ...

  2. c语言eof不起作用,c语言中EOF的用法

    c语言中EOF的用法以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! c语言中EOF的用法 1.EOF是end of fi ...

  3. c语言typedef怎么自定义函数,c语言中typedef的用法

    C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功 ...

  4. 在c语言中通过return语句,c语言中return的用法

    c语言中return的用法 函数的返回值是指函数被调用之后,执行函数体中的代码所得到的结果,这个结果通过 return语句返回. return 语句的一般形式为:return 表达式; 或者:retu ...

  5. c语言 fread读指定字节,c语言中fread的用法

    fread是以记录为单位的I/O函数,fread和fwrite函数一般用于二进制文件的输入输出.下面小编就跟你们详细介绍下c语言中fread的用法,希望对你们有用. c语言中fread的用法如下: # ...

  6. c语言getchar函数的作用,c语言中getchar的用法函数用法

    当程序调用getchar时.程序就等着用户按键.用户输入的字符被存放在键盘缓冲区中.直到用户按回车为止.下面小编就跟你们详细介绍下c语言中getchar的用法,希望对你们有用. c语言中getchar ...

  7. 【define】你知道C语言中define的作用吗?

    文章目录 前言 一.define是什么? 二.define的作用 1.define定义符号 2.define定义宏 总结 前言 define是编程语言中一种重要的关键字,今天我为你们讲解其在C语言中的 ...

  8. c语言求占用内存sizeof,C语言中sizeof的用法

    定义: sizeof是神圣的sizeof,它是C / C ++中的运算符. 简而言之,其功能是返回对象或类型占用的内存字节数. MSDN上的解释是: sizeofkeyword给出字节,关联的类型(包 ...

  9. c语言 编译开关用法,C语言中define的使用方法

    C语言中define的使用方法 学习了这么多年C语言,说实话对宏自以为了如指掌了,没想到看内核代码的时候还是那么吃力,设备驱动代码中有很多这样或者那样的宏定义,各种define都有哪些学习方法呢?以下 ...

最新文章

  1. 深度学习卷积网络中反卷积/转置卷积的理解 transposed conv/deconv
  2. 《Head First 设计模式》之命令模式——遥控器
  3. mathtype中批量修改公式的字号和大小
  4. J2ME Nokia 模拟器 安装运行
  5. python mysql 遍历_Python自动化办公系列六(pdf文档处理)
  6. 1040 有几个PAT(PAT乙级 C++)
  7. 论文投稿新规则,不用跑出SOTA,还能“内定”发论文?!
  8. javascript教程_JavaScript教程
  9. tomcat6配置log4j日志
  10. 遇见未来系列专访 | 聆听时代最前沿的声音
  11. Apache 服务器配置详解
  12. BZOJ2424 [HAOI2010]订货
  13. boolan 设计模式笔记
  14. 铁路专用计算机,浅谈专用铁路计算机联锁控制
  15. 传输请求时报信息对象0REQ_CDATE不存在
  16. android中的imagebutton,Android:以编程方式在ImageButton中设置图像的填充
  17. 2013.07.10《播音主持之绕口令训练…
  18. python列表数字比大小教案_幼儿园大班数学教案数字比大小
  19. 基于STM32的人体红外测温
  20. Firefox内存占用过高假死解决方法

热门文章

  1. 软件工程之面向对象分析与设计
  2. Linux常用命令笔记
  3. Yapi测试插件--cross-request
  4. 又一年神仙打架,清华大学特等奖学金答辩会上15位大神现场竞争!
  5. 四个免费,无法律风险的高质量国外图片网站推荐
  6. html一般资源放在那里,css一般放到哪里?
  7. FCKEditor 的使用
  8. Python之外星人游戏(带源码和图片资源)项目
  9. CPA二十--关联方关系的判断标准(转载)
  10. python数据挖掘领域工具包