天天瞎忙活,QQ:705719110,欢迎来撩!

C语言学习笔记————–预处理指令

C语言基础 随风 553℃

什么是预处理指令

        在C语言中对源码进行编译之前,会先对一些特殊指令作出解释,这就是C语言的编译预处理。为了区分这些指令和一般的C语句,所有预处理指令都以符号”#”开头,并且结尾不用添加分号。预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾,习惯上我们尽可能将预处理指令写在源程序开头。C语言中的预处理指令主要有:宏定义指令、条件编译指令、文件包含指令。

宏定义指令

        #define 宏的名称 宏的值

        分为有参数和无参数的,比如

与函数的区别
        有参数的宏定义与函数实现的功能看似差不多,但是他们之间有着本质的区别,宏定义不涉及存储空间的分配、参数类型匹配、参数传递、返回值问题,并且函数调用在程序运行时执行,而宏替换只在编译预处理阶段进行。所以带参数的宏比函数更高效。

条件编译指令

        条件编译就是根据一些条件判断后选择性编译,与流程控制比较类似,比如

文件包含编译指令

        文件包含指令就是包含文件用的,在前面我们都看到了 #include 这类了,这就是文件包含指令

        文件包含指令允许嵌套包含,但是不允许递归包含,就像文件啊包含了文件b,文件b包含了文件c,这是允许的,文件a包含了文件b,文件b也包含了文件a,这是不允许的。

        但是如果文件a包含了文件b,文件c包含了文件a和文件b,这样语法没有问题,但是会导致重复包含,降低编译的效率,这样我们就可以使用下面的方法来处理这个问题。

转载请注明:怼码人生 » C语言学习笔记————–预处理指令

喜欢 (0)