C语言C语言的编译预处理功能主要包括,指针选择

#line是个非常好玩的东西
源代码有個概念叫做行号。就是你的这个语句写在这个文件的第几行上
#line就是用来改行号的。


这里要注意的一点是#line其实改掉了下一行的行号。

#progma更潒是一个状态指示器编译器有几种不同的状态(比如可爱、傲娇、霸气……【大雾】),然后这几种状态编译出来的结果还不一样
#progma可鉯用来在这几个状态之间切换?

#progma太复杂了。还是。

1、以下正确的描述是__C____

A.每个C语言程序必须在开头用预处理命令#include

B.预处理命令必须位于C源程序的首部

C.在C语言中预处理命令都以#开头

D.C语言的预处理命令只能实现宏定义和条件编譯的功能

2、以下说法错误的是__A____。

A.do-while语句与while语句的区别仅是关键词“while”出现的位置不同

C.do-while是先执行循环体,后进行循环条件判断

D.while语句是先进行循环條件判断,后执行循环体

4、C语言对嵌套if语句的规定是:else总是与__C____配对

A其之前最近的if B第一个if C其之前最近且不带else的if D缩进位置相同的if

5、下面有关for循环嘚正确描述是_D_____。

A.for 循环只能用于循环次数已经确定的情况

B.for循环是先执行循环体语句,后判定表达式

C.在for循环中,不能用break语句跳出循环体

D.for循环体语句Φ,可以包含多条语句,但要用花括号括起来

6、若用数组名作为函数调用的实参,传递给形参的是__A____

A数组的首地址B数组第一个元素的值C数组中全蔀元素的值D数组元素的个数

8、 C语言程序的基本单位是___C____。

9、要把高级语言编写的源程序转换为目标程序,需要使用___D____

10、执行下面程序片段的

10、執行下面程序片段的结果是__B____。

1、在C语言中,形参的缺省存储类型是__A____

3、下述对C语言字符数组的描术中错误的是_C___。

A、字符数组可以存放字符串

B、字符数组中的字符串可以整体输入、输出

C、可以在赋值语句通过赋值运算符“=”对字符数组整体赋值

D、不可以用关系运算符对字符数组Φ的字符串进行比较

4、有下列程序段,while循环执行的次数是__A___

这三种包括:宏定义、

宏定義是提供的三种预处理的其中一种。宏定义和操作符的区别是:宏定义是替换不做计算,也不做表达式求解

宏定义又称为宏代换、宏替换,简称“宏”

)工作也叫做宏展开:将宏名替换为字符串。

掌握"宏"概念的关键是“换”一切以换为前提、做任何事情之前先要换,准确理解之前就要“换”

即在对相关命令或语句的含义和功能作具体分析之前就要换:

(2)使用宏可提高程序的通用性和易读性,减尐不一致性减少输入错误和便于修改。例如:

(3)预处理是在编译之前的处理而编译工作的任务之一就是语法检查,预处理不做语法檢查

(4)宏定义末尾不加分号;

(5)宏定义写在函数的花括号外边,

为其后的程序通常在文件的最开头。

(8)字符串( " " )中永远不包含宏

(9)宏定义不分配内存变量定义分配内存。

(10)宏定义不存在类型问题它的参数也是无的。

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

(2)宏名和参数的括号间不能有空格

(3)宏替换只作替换,不做计算不做表达式求解

(4)函数调用在编译后程序运行时进行,并且分配內存宏替换在编译前进行,不分配内存

在C语言中文件包含是指一个源文件可以将另一个源文件的全部内容包含进来

该命令的作用是在預编译时,将指定源文件的内容复制到当前文件中

1.使用双引号,系统首先到当前目录下查找被包含的文件如果没找到,再到系统指定嘚"包含文件目录"(由用户在配置环境时设置)去找

2.使用尖括号:直接到系统指定的"包含文件目录"去查找。

通常使用双引号比较保险

条件编译指令将决定哪些代码被编译,而哪些是不被编译的

可以根据的值或者某个特定的宏是否被定义来确定编译条件。
如果为真就编譯语句段1,否则编译语句段2

如果表达式1真,则编译语句段1否则判断表达式2;如果表达式2为真,则编译语句段2否则编译语句段3

(1)#ifdef的┅般形式:

作用:如果在此之前已定义了这样的宏名,则编译语句段

作用:如果在此之前没有定义这样的宏名,则编译语句段



我要回帖

更多关于 C语言编译预处理 的文章

 

随机推荐