预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对源代码做某些转换。

下面是部分预处理指令:

指令 说明

#

空指令,无任何效果

#include

包含一个源代码文件

#define

定义宏

#undef

取消已定义的宏

#if

如果给定条件为真,则编译下面代码

#ifdef

如果宏已经定义,则编译下面代码

#ifndef

如果宏没有定义,则编译下面代码

#elif

如果前面的#if给定条件不为真,当前条件为真,则编译下面代码

#endif

结束一个#if……#else条件编译块

预处理功能是C语言特有的功能,它是在对源程序正式编译前由预处理程序完成的,程序员在程序中用预处理命令来调用这些功能。

宏定义可以带有参数,宏调用时是以实参代换形参,而不是“值传送”。

为了避免宏代换时发生错误,宏定义中的字符串应加括号,字符串中出现的形式参数两边也应加括号。

文件包含是预处理的一个重要功能,它可用来把多个源文件连接成一个源文件进行编译,结果将生成一个目标文件。

条件编译允许只编译源程序中满足条件的程序段,使生成的目标程序较短,从而减少了内存的开销并提高了程序的效率。

使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。

声明:

本文于网络整理,版权归原作者所有,如来源信息有误或侵犯权益,请联系我们删除或授权事宜。

C语言预处理命令总结相关推荐

  1. C语言中编译预处理命令作用,C语言预处理命令详解

    原标题:C语言预处理命令详解 关注百问科技并将它设为星标 不错过任何一篇嵌入式干货 ------ 作者:clover_toeic 原文出处: https://www.cnblogs.com/clove ...

  2. C语言预处理命令(预处理指令)

    C语言预处理命令分为:宏定义.文件包含.条件编译 什么是预处理命令? 预处理命令属于C语言编译器,而不是C语言的组成部分 预处理命令的作用:就是在编译和链接之前,对源文件进行一些文本方面的操作,比如文 ...

  3. R 多变量数据预处理_超长文详解:C语言预处理命令

    一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能 ...

  4. c语言预处理命令math,C语言之预处理命令

    预处理命令 主要是改进程序设计环境,以提高编程效率,不属于c语言本身的组成部分,不能直接对它们进行编译,必须在对 程序编译之前,先对程序中的这些特殊命令进行"预处理".比如头文件. ...

  5. c语言预处理命令12个,C语言编译预处理和预处理命令

    1.预处理概念:编译程序时,编译器将对程序文件作至少两个阶段的编译预处理,预处理程序预处理阶段和编译程序预处理阶段. 预处理程序预处理阶段:C预处理程序先于C编译程序运行.预处理程序从前向后根据预处理 ...

  6. C语言预处理命令分类和工作原理

    C语言编程过程中,经常会用到如 #include.#define 等指令,这些标识开头的指令被称为预处理指令,预处理指令由预处理程序(预处理器)操作. 相比其他编程语言,C/C++ 语言更依赖预处理器 ...

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

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

  8. c语言输入输出预处理命令,C语言第十一讲,预处理命令.

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

  9. C语言中 编译预处理命令的作用有哪些,C语言系列——预处理命令

    是什么? 首先介绍一下什么是预处理,在编译之前对源文件进行简单加工的过程,就称之为预处理.又因为预处理主要是处理#开头的命令,故将以#号开头的命令称为预处理命令. 做什么? 今天我们主要讨论C语言中的 ...

最新文章

  1. 3天拆解数据分析全流程!
  2. 看看那些令你惊叹的PCB设计艺术
  3. 工作经常使用的SQL整理,实战篇(三)
  4. 【SICP练习】66 练习2.37
  5. java 数组的拷贝 对象数组的拷贝 System.arraycopy函数
  6. android x86 笔记本卡屏,笔记本死机卡屏怎么办
  7. python random函数_Python随机函数random使用详解
  8. 燕山大学计算机学院官网,燕山大学信息科学与工程学院(专业学位)计算机技术保研夏令营...
  9. [leetcode]687. Longest Univalue Path
  10. Cisco交换机上的链路聚合
  11. Linux安装webmin
  12. 拼团功能实现 php_PHP实现微信退款功能
  13. java对象中方法的存储原理_垃圾收集机制的基本原理及方法
  14. linux系统国产制图软件,国产操作系统也能用的国产图表绘制软件,替代Visio就用它了...
  15. 在CSDN发布付费资源
  16. 【C语言】pow函数的模拟实现(递归)
  17. 作业4—文法和语言总结与梳理
  18. php生成统计图类pchart---中文翻译手册
  19. C++:实现量化期权交易CDS加密货币衍生品测试实例
  20. 绵阳现在买房怕房价跌,不买又怕房价涨!到底是跌是涨?

热门文章

  1. apollo 参数传递_使用Apollo通过WebSocket通过STOMP轻松进行消息传递
  2. java反射api研究_深入研究Java 8中的可选类API
  3. java8 javafx_Java 8的新增功能(第1部分– JavaFX)
  4. java 死锁的检测与修复_调查死锁–第4部分:修复代码
  5. Apache Camel的性能调整思路
  6. mongodb 性能测试_MongoDB性能测试
  7. 在Websphere 8.0上安装Liferay 6.2 Enterprise Edition
  8. PrimeFaces 5.0 DataTable列切换器
  9. JavaFX技巧4:总结
  10. ActiveMQ中的温度,存储和内存使用百分比