C及C中include的使用.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C及C中include的使用

C和C++中include的使用 做c/c++编程的对#include指令都不会陌生,绝大多数也都知道如何使用,但我相信仍有人对此是一知半解, C: #include stdio.h HYPERLINK C++: #include iostream 表示包含C/HYPERLINK C++标准输入头文件。包含指令不仅仅限于。h头文件,可以包含任何编译器能识别的C/C++代码文件,包括。c,。hpp,。cpp,。hxx,。cxx等,甚至。txt,。abc等等都可以 2.名词解释 preprocess 预处理:为方便编译器处理而设置的一种机制,包括一些常用预处理指令和语句,我们统称为预处理系统。 如#include #define #if……#else……#endif #pragma等 这些指令的实现是由编译器来决定的(implementation specified) 提到预处理指令,顺便说一下头文件防止重复包含的2种方法 a.保护宏 #ifndef _ABCDE_H #define _ABCDE_H /* 代码部分 */ #endif 在被包含过一次之后,宏_ABCDE_H已经有了,下次再碰到就会略过从#define _ABCDE_H开始到#endif之间的代码 还有一种特定编译器支持的指令: b.#pragma once 能保证该文件(物理上的)只被编译一次,也能起到防止重复包含的作用 但这2种方式是有区别的: a.Macro guard可移植性好,绝大多数编译器都支持,而且万一不小心拷贝了几分相同的代码也不会出问题,但你得确保这个宏名不会与其他的宏冲突,否则等编译器报出一大堆错误的时候你可能会觉得莫名其妙; b.#pragma once指令简单,它能保证该文件(物理上的)只被编译一次,不用去费劲的想不同的宏名,但如果有几份该文件的拷贝,显然起不到作用。 declaration 声明:指将一个名称引入当前编译单元,或者重新声明一个前面已经声明过的名称,声明指定了如何解释一个名称和该名称具有的属性; 例如: int main(void) { int a; // 声明了变量a,类型为int int *pa; // 声明了变量pa,类型为指向int型的指针类型 } definition 定义:除了以下情况,声明就是定义 a.声明函数但不包括函数体; b.声明包含extern链接限定符,例如:extern int a; c.声明既没有初始化语法,也没有函数体; d.类声明中声明静态数据成员; e.类名字声明; f.typedef声明; g.using声明或者using指令; 以上情况适用于C具有的特征,C++则完全适用,一般来说定义要为其对象分配或预留HYPERLINK /存储空间,而声明则不用。 translation unit 编译单元:一个源文件,。c .cpp等和它所包含的文件一起,在经过预处理之后形成一个源码文件,标准称之为translation unit(编译单元)包括一系列的声明和定义;一个program(程序)由一个或多个编译单元组成。编译器将各个翻译单元编译为目标代码(。obj),通过连接器(linker)将这些编译后的编译单元(即目标代码)连接成完整的指令序列(可执行文件、静态库、动态库等)。 one definition rule 一次定义规则:是指定义在所有进入连接的编译单元中只能有一次。 3.观点、例子 A:头文件只放声明 example_a.h void function(); example_a.cpp: #include example_a.h void function() {} B.被包含的文件可以使用任意扩展名: 只要是用符合标准的代码编写的文本文件,就可以使用#include来进行包含,包括。cpp .c等常见的源文件扩展名; example_b_1.b void function(); example_b_1.cpp: #include example_b_1.b void function() {} example_b_2.b void function1(); void function2(); example_b_21.cp

文档评论(0)

ktj823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档