中易网

what does the #include preprocessor directive do

答案:1  悬赏:50  
解决时间 2021-03-15 07:26
what does the #include preprocessor directive do
最佳答案
preprocessor directive (预处理命令)

预处理命令不是C语言本身的组成部分,不能直接对它们进行编译(编译程序不能识别它们)。所以必须在对程序进行通常的编译之前,先对程序中这些特殊的命令进行“预处理”。
C语言与其他高级语言的一个重要区别是可以使用预处理命令和具有预处理的功能。

C提供的预处理功能主要有以下三种:
1.宏定义
2.文件包含
3.条件编译
为了与一般的C语句相区别,这些命令以符号"#"开头。

1.宏定义:
[不带参数的宏定义]:用一个指定的标识符来代表一个字符串。其一般形式为:
#define 标识符 字符串
如: #define PI 3.1415926
把这个标识符称为“宏名”,在预编译时将宏名替换成字符串的过程称为“宏展开”。#define为宏定义命令。
宏名一般习惯用大写字母表示,以便与变量名相区别。
宏定义是用宏名字代替一个字符串,也就是做简单的置换,不做正确性检查。预编译时不做任何语法检查。
宏定义不是C语句,不必在行末加分号。否则,会连分号一起进行置换。
可以使用 #undef 命令终止宏定义的作用域。
在进行宏定义时,可以引用已定义的宏名,可以层层置换。
对程序中用双括号括起来的字符串内的字符,即使与宏名相同,也不进行置换。
宏定义只做字符替换,不分配内存空间。
[带参数的宏定义]:不是进行简单的字符替换,还要进行参数替换。其一般形式为:
#define 宏名(参数表) 字符串
如: #define S(a,b) a*b
宏定义时,在宏名与带参数的括号之间不应加空格,否则将空格以后的字符都作为替代字符串的一部分。
一般用宏来代表简短的表达式比较适合。

2.文件包含:
所谓“文件包含”处理是指一个源文件可以另外一个源文件的全部内容包含近来,即将另外的文件包含到本文件之中。
其一般形式为: #include "文件名"
#include <文件名>
包含文件编译时并不是作为两个文件进行连接的,而是作为一个源程序编译,得到一个目标(.obj)文件。因此被包含的文件也应该是源文件而不应该是目标文件。
这种常用在文件头部的被包含的文件称为“标题文件”或“头部文件”,常以"h"为后缀,当然不用".h"位后缀,而用".c"为后缀或者没有后缀也是可以的。
头文件除了可以包括函数原型和宏定义外,也可以包括结构体类型的定义
一个#include命令只能指定一个被包含文件
文件包含是可以嵌套的。
在#include 命令中,文件名可以用双引号或尖括号括起来。用尖括号时,系统到存放C函数库头文件所在的目录中寻找要包含的文件,这称为标准方式。
用双引号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找。
所以,如果为调用库函数而用#include 命令来包含相关的头文件,则用尖括号,以节省查找时间。如果要包含的是用户自己编写的文件,一般用双引号。

3.条件编译
有以下几种形式:
(1) #ifdef 标识符
程序段1
#else
程序段2
#endif
(2)
#ifndef 标识符
程序段1
#else
程序段2
#endif
(3)
#if 表达式
程序段1
#else
程序段2
#endif
采用条件编译,可以减少被编译的语句,从而减少目标程序的长度,减少运行时间。

*****************************************
参考书籍:C程序设计
*****************************************
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
放弃用英文怎么说
怎么将数据库记录显示在表格中
用了草甘膦对下茬小麦有害吗
迈锐宝我除了上下班开一下,就是周末开了!上
雅豪庭园地址在什么地方,想过去办事
安装钛合金推拉门包括门套吗
北京南三四环之间哪里有大学
梦见身穿白衣的人在笑
玩lol有时网卡驱动停止运行
交通违章代码1721,扣多少分
线切割加工出的尺寸变大,而且没有规律!
哥们,你那戴尔1014升级CPU成功了吗?CPU是不
我头发太少了能剪西瓜头吗
斯蒂文斯理工学院的地理位置如何?
lotus notes 8.5.1 FP3发送大邮件的问题
推荐资讯
苹果7plus A10发热怎么回事
tvb有一部演打台球的剧叫什么
菜鸟驿站(天福1647江门蓬江区圣廷店)地址在哪
请问邮政公司 就是 邮局 校园招聘考试都考什
一生中最爱 情歌对唱
彩虹岛 新手收费地图怎么用
锦虹快捷酒店地址在哪,我要去那里办事
中国人从什么时候开始穿内裤的?
骨头用小火炖了1个半怎么还是咬不动
可以加载ssa和srt字幕的安卓播放器?
大腿上面韧带拉伤会怎样?
把长2米,宽0.8米,高1米长方体,切两个完全
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?