九.预处理命令

        我们一般编辑程序的顺序为:编辑,预处理,编译,连接,运行。中间三个其实都是在我们gcc时系统会完成的操作。        

预处理包含:宏定义,文件包含,条件编译

一,宏定义

        在上一篇我们也提及到了一部分预处理的内容,其实预处理的本质就是无脑的文本替换;

因此会很容易出现bug,比如我们的宏的参数为2 + 3;在进行文本替换时会将所有的宏名替换为2 + 3;若有处为2 * 宏,我们想要的结果是2 * (2 + 3)为10,而往往结果却是无脑的文本替换为2 * 2 + 3为7,因此在定义宏时就加括号,越多越好。

(1)不带参宏

其中的标识符一般大写;有一种只有宏名,无内容的宏:#define K  用来为将来使用做准备。

(2)带参宏

注意:宏与函数的区别:宏在程序中直接展开,效率高;函数需要保护现场、恢复现场,效率不高,但复用性强。

二,文件包含

一个源文件将另一个源文件的内容包含起来,C语言中提供#include命令。

用尖括号包起来表示在/usr/include/目录下找;用双引号表示在现在的main.c所在的目录下找。

三,条件编译

                ​​​​​​​        ​​​​​​​        ​​​​​​​        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

        ​​​​​​​        ​​​​​​​        ​​​​​​​        ​​​​​​​        

其中else可省略,一般为避免一个头文件中由于多次包含,而导致的重复定义会使用#ifndef。

eg:#ifndef  _FUNC_H_

        #defind  _FUNC_H_

        #endid  _FUNC_H_

  • 6
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值