转自: C程序设计(第二版) 谭浩强
-
include基础
在#include命令中,文件名可以用双撇号或尖括号括起来,如可以在file1.c中用:
#include <file2.h>
or
#include "file2.h"
都是合法的。二者的区别:
- 用尖括号(即<file2.h>形式)时,系统到存放C库函数头文件所在的目录中寻找要包含的文件,这称为标准方式。
- 用双撇号(即"file2.h"形式)时,系统现在用户当前目录中寻找要包含的文件,若找不到,再按标准方式查找(即再按尖括号的方式查找)。
一般来说,如果为调用库函数而用#include命令来包含相关的头文件,则用尖括号,以节省查找时间。
如果要包含的是用户自己编写的文件(这种文件一般都在当前目录中),一边用双撇号。若文件不在当前目录中,双撇号内可给出文件路径。
被包含文件(file2.h)与其所在的文件(即用#include命令的源文件file1.c),在预编译后已称为一个文件(而不是两个文件)。因此,如果file2.h中有全局静态变量,它也在file1.c文件中有效,不必用extern声明。
-
Linux源码中的include:
kernel/arch/arm/include/asm/uaccess.h --->#include <asm/uaccess.h>(包含此uaccess.h时,注意include后包含的部分)
kernel/include/linux/kernel.h-->#include <linux/kernel.h>(包含kernel.h文件时,注意include后包含的部分)
kernel/include/linux/module.h-->#include <linux/module.h>