C++学习笔记day13-----标准C语言

条件编译:
#ifdef/ifndef YI
code1
#else
code2
#endif
当使用ifdef的时候,对YI这个宏进行了定义,那么编译器会编译code1,否则编译code2
当使用ifndef的时候,对YI进行定义,编译器会编译code2,否则编译code1

#if ONE
code1
#elif TWO
code2
#else
code3
#endif
采用这种格式的条件编译,ONE 和 TWO不仅仅可以是一个宏定义,还可以是一个逻辑表达式。
当ONE为真(如果是单单只使用宏,只要定义过就算真),编译器编译code1;
如果ONE为假,TWO为真,编译器编译code2;
如果ONE和TWO都为假,编译器编译code3;

多文件编程:
主函数,一般单独放在一个源文件.c内。
其他函数按照分类放置到不同的源文件中,每个源文件要有自己的头文件,头文件中至少包含源文件中定义的所有函数的声明。头文件以.h作为扩展名,文件名与源文件一致。
源文件要包含自己的头文件和一些必须要用的头文件(比如说,这个源文件用到了另一个源文件中定义的函数,就需要包含那个源文件的头文件)

多文件编译:
多文件编译有两种办法。
一种使用gcc命令在后面列出所有的源文件,进行编译。
另一种,使用Makefile,在Makefile中写好每个源文件的编译(这里的编译表示只做整个编译动作的第一步和第二步,生成一个.o文件)顺序。然后用make指令编译。
Makefile书写格式:

ox:box-LX.1.2.o box-LX.o
        gcc -o box box-LX.1.2.o box-LX.o

box-LX.1.2.o:box-LX.1.2.c
        gcc -c box-LX.1.2.c

box-LX.o:box-LX.c
        gcc -c box-LX.c

其中下面两条先单独将文件进行编译,然后由第一条执行整个编译的最后一步,最后生成可执行文件。需要注意的是gcc指令前不能用空格只能用tab,否则Makefile工具不认识。

头文件的多次编译:
如果一个头文件在一个程序中,被其他源文件多次包含,那么在编译的时候,这个头文件将会被多次编译,这样是不合理的。我们可以通过以下条件编译的指令来保证一个头文件只会被编译一次。
#ifndef BOXLX_H
#define BOXLX_H
code
#endif
第一次编译的时候,BOXLX_H 这个宏是没有编译过的,然后定义 BOXLX_H 这个宏,再编译剩下的code。
第二次编译它的时候 BOXLX_H 已经第一次中定义过,所以这次编译它不会编译任何内容。
BOXLX_H 这个宏名称是可以任意的,但是为了保证这个宏的唯一性,一般都用全大写的头文件文件名,把.替换成然后在宏的前后加上 _

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值