c和c中include的使用

c和c中include的使用

ID:34558039

大小:28.50 KB

页数:5页

时间:2019-03-07

c和c中include的使用_第1页
c和c中include的使用_第2页
c和c中include的使用_第3页
c和c中include的使用_第4页
c和c中include的使用_第5页
资源描述:

《c和c中include的使用》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、C和C++中include的使用做c/c++编程的对#include指令都不会陌生,绝大多数也都知道如何使用,但我相信仍有人对此是一知半解,C:#includeC++:#include表示包含C/C++标准输入头文件。包含指令不仅仅限于。h头文件,可以包含任何编译器能识别的C/C++代码文件,包括。c,。hpp,。cpp,。hxx,。cxx等,甚至。txt,。abc等等都可以2.名词解释preprocess预处理:为方便编译器处理而设置的一种机制,包括一些常用预处理指令和语句,我们统称为预处理系统。

2、如#include#define#if……#else……#endif#pragma等这些指令的实现是由编译器来决定的(implementationspecified)提到预处理指令,顺便说一下头文件防止重复包含的2种方法a.保护宏#ifndef_ABCDE_H#define_ABCDE_H/*代码部分*/#endif在被包含过一次之后,宏_ABCDE_H已经有了,下次再碰到就会略过从#define_ABCDE_H开始到#endif之间的代码还有一种特定编译器支持的指令:b.#pragmaonce能保证该文件(物理上的)只被编译一次,也能

3、起到防止重复包含的作用但这2种方式是有区别的:a.Macroguard可移植性好,绝大多数编译器都支持,而且万一不小心拷贝了几分相同的代码也不会出问题,但你得确保这个宏名不会与其他的宏冲突,否则等编译器报出一大堆错误的时候你可能会觉得莫名其妙;b.#pragmaonce指令简单,它能保证该文件(物理上的)只被编译一次,不用去费劲的想不同的宏名,但如果有几份该文件的拷贝,显然起不到作用。declaration声明:指将一个名称引入当前编译单元,或者重新声明一个前面已经声明过的名称,声明指定了如何解释一个名称和该名称具有的属性;例如:int

4、main(void){inta;//声明了变量a,类型为intint*pa;//声明了变量pa,类型为指向int型的指针类型}definition定义:除了以下情况,声明就是定义a.声明函数但不包括函数体;b.声明包含extern链接限定符,例如:externinta;c.声明既没有初始化语法,也没有函数体;d.类声明中声明静态数据成员;e.类名字声明;f.typedef声明;g.using声明或者using指令;以上情况适用于C具有的特征,C++则完全适用,一般来说定义要为其对象分配或预留存储空间,而声明则不用。translation

5、unit编译单元:一个源文件,。c.cpp等和它所包含的文件一起,在经过预处理之后形成一个源码文件,标准称之为translationunit(编译单元)包括一系列的声明和定义;一个program(程序)由一个或多个编译单元组成。编译器将各个翻译单元编译为目标代码(。obj),通过连接器(linker)将这些编译后的编译单元(即目标代码)连接成完整的指令序列(可执行文件、静态库、动态库等)。onedefinitionrule一次定义规则:是指定义在所有进入连接的编译单元中只能有一次。3.观点、例子A:头文件只放声明example_a.hv

6、oidfunction();example_a.cpp:#include"example_a.h"voidfunction(){}B.被包含的文件可以使用任意扩展名:只要是用符合标准的代码编写的文本文件,就可以使用#include来进行包含,包括。cpp.c等常见的源文件扩展名;example_b_1.bvoidfunction();example_b_1.cpp:#include"example_b_1.b"voidfunction(){}example_b_2.bvoidfunction1();voidfunction2();exa

7、mple_b_21.cpp:voidfunction1(){}example_b_22.cpp:#include"example_b_1.b"#include"example_b_21.cpp"voidfunction2(){}上面的例子中,example_b_21.cpp仅被包含在xample_b_22.cpp中,不再被其他的文件包含,而且不加入工程中;C.标准头文件的使用最新的C++标准库中的一切内容都被放在名字空间std中(名字空间中的内容对外是不可见的),但是带来了一个新问题,无数现有的C++代码都依赖于使用了多年的伪标准库中的

8、功能,如声明在等头文件中的功能,使用std包装标准库导致现有代码的不可用,为了兼容这种情况,标准委员会为包装了std的那部分标准库创建了新的头文件,新的头文件的文件名与旧的一样,只是

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。