📄 codetc14b.dat
字号:
"文件包含"命令是很有用的, 它可以节省程序设计人员的重复劳动.例如,某一单位的人员往往使用一组固定的符号常 量(如g=9.81,pi=3.1415926,e=2.718),可以把这些宏定 义命令组成一个文件,然后各人都可以用#include命令将这 些符号常量包含到自已所写 的源文件中.这样每个人就可以不必重复定义这些符号常量.相当于工为业上的标准零件, 拿来就用.例如:
文件format.h
#define PR printf
#define NL "\n"
#define D "%d"
#define D1 D NL
#define D2 D D NL
#define D3 D D D NL
#define D4 D D D D NL
#define S "%s"
文件file1.c
#include "format.h"
main()
{
int a,b,c,d;
char string[]="CHINA";
a=1;b=2;c=3;d=4;
PR(D1,a);
PR(D2,a,b);
PR(D3,a,b,c);
PR(D4,a,b,c,d);
PR(S,string);
}
注意: 1. 在编译时并不是作为两个文件进行连接的,而是作为一个源程序编译,得到一个目标(.obj)文件因此包含的文 件也应该是源文件而不应该是目标文件.
2 这种常用在文件头部的被包含的文件称为"标题文件"或"头部文件",常以"h"为后缀(为head(头)的缩写), 如 "format.h"文件. 当然不用".h"为后缀, 而用"c"为后缀或者没有后缀也是可以的, 但用"h"作后缀更能表示 此文件的性质.
3. 如果需要修改一些常数,不必修改每个程序,只需修改一个文件(头部文件)即可.但是应当注意,被包含文件修 改后,凡包含此文件的所有文件都要全部重新编译.
4. 头文件除了可以包括函数原型和宏定义外,也可以包括结构体类型定义和全局变量定义等.
说明: 1. 一个include命令只能指定一个被包含文件,如果要包含n个文件,要用n个include命令.
2. 如果文件1包含文件2,而文件2中要用到文件3的内容,则可在文件1中用两个include命令分别包含文件2和文 件3,而且文件3应出现在文件2之前,即 在file1.c中定义:
#include "file3.h"
#include "file2.h"
这样,file1和file2都可以用file3的内容.在file2中不必再用#include<file3.h>了(以上是假设file2.h在 本程序中只被file1.c包含,而不出现在其他声合).
3. 在一个被包含文件中又可以包含另一个被包含文件,即文件包含是可以嵌套的.
4. 在#include命令中,文件名可以用双引号或尖括号括起来,如可以在file1.c中用 #include <file2.h> 或 #include"file2.h" 都是合法的.二者的区别是用尖括弧时,系统到存放C库函数头文件所在的目录中寻找要 包含的文件,这称为标准方式.用双引号时,系统先在用户当前目录中寻找要包含的文件,若找不到,再按标准 方式查找(即再按尖括号的方式查找).一般说,如果为调用库函数而用#include命令来包含相关的头文件,则 用尖括号凤节省查找时间.如果要包含的是用户自已编写的文件(这种文件一般都在当前目录),一般用双引号
5. 被包含文件(file2.h)与其所在的文件(即用#include命令的源文件file1.c),在预编译后已成为同一个文件( 而不是两个文件).因此,如果file2.h中有全局静态变量,它也在file1.c文件中有效,不必有extern声明
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -