是什么?

首先介绍一下什么是预处理,在编译之前对源文件进行简单加工的过程,就称之为预处理。又因为预处理主要是处理#开头的命令,故将以#号开头的命令称为预处理命令。

做什么?

今天我们主要讨论C语言中的预处理命令,C语言预处理命令的出现,使得编写的程序便于阅读、修改、移植和调试,同时也有利于模块的设计。

那么C语言中的预处理命令的功能有哪些哪?C中目前提供了三种预处理功能:1 宏定义;2 文件包含;3条件编译。那么这三种预处理命令都是用来做什么的哪?

一 宏定义处理

1 概念:也属于一种定义方式,实际就是定义了一个符号常量,这个符号常量代替一个具体的数值或者数组,但是由于该数值复杂或容易出现编写错误,所以用一个简单的符号常量来替换。宏定义的重点就是在于一个“换”字。

2 实现方式分为俩种,带参数的宏定义和不带参数的宏定义。

(1)不带参数的宏定义容易理解,就是在宏定义作用区间内进行简单的字符串替换。

定义方式:#  define 标识符 字符串

(2)带参数的宏定义不是进行简单的字符串替换,还要进行参数替换。

定义方式:# define 宏名(参数表) 字符串

注意:为什么说是在宏定义作用区间内哪?因为宏定义是可以有结束的,都知道定义符号为#  define,有开始符号当然有结束符号,宏定义的结束符号为# undef。

二 文件包含处理

1 概念:一个源文件可以将另外一个源文件的全部内容包含进来。

2 实现方式:# include "文件名"或 # include 。

3 作用:将一下通用的配置或者预处理定义放到一个文件中,每个需要使用该配置的文件只要包含一下该文件就可以减少重复的工作。

三 条件编译处理

1 概念:为了令程序中的一部分内容在满足一定条件下才进行编译,也就是这部分内容指定了编译条件,这种情况就是条件编译处理。

2 实现方式:

# ifdef 标识符

程序段1

# else

程序段2

# endif

3 作用:提高了C语言的通用性,不同的计算机能兼容的执行C语言的代码程序。

怎么做?

这一步主要考验我们是否能在一个C语言的程序中认识这三种预处理语句,同时也考验我们遇到适用情况,我们是否能适用这三种预处理功能解决相应的问题。具体实践,请联系课本,或者网上搜索些例子进行练习。

C语言中 编译预处理命令的作用有哪些,C语言系列——预处理命令相关推荐

  1. c语言中数组的概念及作用,详解C语言中的指针与数组的定义与使用

    指针的特点 他就是内存中的一个地址 指针本身运算 指针所指向的内容是可以操作的 操作系统是如何管理内存的 栈空间 4M~8m的大小 当进入函数的时候会进行压栈数据 堆空间 4g的大小 1g是操作系统 ...

  2. C语言中内联函数的作用 inline

    C语言中内联函数的作用 inline C语言中内联函数到底有什么作用? 试想一下,每当我们在假设就在主函数中调用另外一个函数的时候,那么这个函数就要入栈或者出栈,比如说下面的一个例子: 点击(此处)折 ...

  3. c语言浮点变量是什么意思,C语言中说的浮点型是什么意思呢 C语言的浮点数是什么...

    导航:网站首页 > C语言中说的浮点型是什么意思呢 C语言的浮点数是什么 C语言中说的浮点型是什么意思呢 C语言的浮点数是什么 相关问题: 匿名网友: 就是这个数就像有一个飘动的小数点,也就是我 ...

  4. 在C语言中如何让常量起作用,解析C语言中如何正确使用const

    基本解释 const是一个C语言的关键字,它限定一个变量不允许被改变.使用const在一定程度上可以提高程序的健壮性,另外,在观看别人代码的时候,清晰理解const所起的作用,对理解对方的程序也有一些 ...

  5. c语言中读和写的作用,c语言文件读写

    c语言文件读写 从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种. ASCII文件也称为文本文件,这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码.ASCII码 ...

  6. C语言中的指针有什么作用

    C语言中的指针的作用是:通过指针不仅可以对数据本身,还可以对存储数据的变量地址进行操作.指针就是内存地址,指针变量是用来存放内存地址的变量. 指针定义: 指针,是C语言中的一个重要概念及其特点,也是掌 ...

  7. c语言比其他语言都高级,9.以下说法中正确的是( ) a.C语言比其他语言高级 b.C语言不用编译就能被计算机执行 c.C语言以接近英语国...

    选项选择c.C语言是一门通用计算机编程语言,应用广泛.从语言角度没有准确的标准说比其他语言高级. C语言要经过编译才能运行. JAVA语言比C语言更晚. 所以上面答案有C合理 C语言的设计目标是 提供 ...

  8. c语言中双反斜杠的作用,[转载]C语言中反斜杠的使用

    问题1: #define f(z) (z<2)?(((2-z)*(2-z))*((2-z)*(2-z)))* (((2-z)*(2-z))*((2-z)*(2-z)))/560:0; 上面这个* ...

  9. c语言中数组的概念及作用,C语言数组的定义及其使用方法

    什么是数组? 在我们学习数组前先让我们介绍一下c语言中数组是什么?数组就是一个个元素按照一定顺序排列的集合.它将数据从最低的内存地址保存到最高的内存地址. 声明一个数组 c语言规定了声明数组的格式: ...

最新文章

  1. SCCM 2007系列4 播发操作系统上
  2. android 两个竖排listview,Android布局 – 在ListView行内垂直堆叠两个TextView
  3. oracle_home path,ORACLE_HOME迁移后需要设置LD_LIBRARY_PATH环境变量
  4. 前端学习(2124):双向绑定的案例图示分析
  5. 论文浅尝 | BoxE:一种基于Box的知识图谱表示学习模型
  6. 一些知名的J2me优秀开源UI项目
  7. 计算机一级选择题题库百度云,2017年全国计算机一级选择题题库
  8. 随机矩阵理论在电力大数据分析中的应用
  9. 苹果笔记本电脑我的计算机在哪里设置密码,苹果笔记本忘记密码怎么办
  10. 华为紧盯Android专利战: 置身事外几无可能
  11. Maximal submatrix
  12. 计算机关机时出现计划,如何在win7计算机上设置自动关机命令
  13. java 实验4 字体对话框_文字字体设计窗体 实验!求大神
  14. 跟我一起从零学习安卓逆向分析
  15. java输出每一列数据左对齐_Java(或Excel) - 如何对齐乱序的列数据
  16. ETCD数据库源码分析——Cluster membership changes日志
  17. 计算机系统实验六:程序的链接
  18. Windows下查看mysql是否启动
  19. java线段绕原点旋转的方法,将点绕坐标原点顺时针旋转得到点的坐标为___________。-九年级数学-魔方格...
  20. 将地质图(shp文件)叠加到天地图上

热门文章

  1. 【dgl学习】dgl中edges.src/edges.dst/edges.data解释
  2. 单线程+多路IO复用 Redis6多线程
  3. CDH安装手册(自整理)
  4. 【Windows 11】系统安装修改版 Subsystem for Android 安卓子系统,并用 Magisk Root
  5. 测试常见面试题(一)
  6. Pacemaker-学习总结(概念、结构)
  7. 显示12306服务器处理中正在排队,12306称能够解决技术问题 不与企业合作
  8. UDF UDAF UDTF 区别
  9. 07. 快速生成树协议
  10. 流媒体服务器主板型号怎么看,玩转NAS 篇五:双2.5G接口+J4125处理器,对于NAS意味着什么?威联通453Dmini对比453Bmini...