题目:
以下关于头文件,说法正确的是(B)
A、#include,编译器寻找头文件时,会从当前编译的源文件所在的目录去找
B、#include“filename.h”,编译器寻找头文件时,会从通过编译选项指定的目录去找
C、多个源文件同时用到的全局整数变量,它的声明和定义都放在头文件中,是好的编程习惯
D、在大型项目开发中,把所有自定义的数据类型、全局变量、函数声明都放在一个头文件中,各个源文件都只需要包含这个头文件即可,省去了要写很多#include语句的麻烦,是好的编程习惯。
知识点:
A、#include头文件有两种方式,一种是尖括号如<filename.h>、一种是双引号如“filename.h”,不同引用方式的查找路径也不一样。
<>的查找路径顺序为:
1、“-I dir1 –I dir2 ...”编译选项指定的路径目录;2、标准路径,即系统或用户配置的路径,如/usr/include,/usr/local/include等; 3、不会在当前目录下寻找头文件;
“”的查找路径顺序为:
1、当前目录;2、“-I dir1 –I dir2 ...”编译选项指定的路径目录;3、标准路径
B、正确
C、多个源文件共用一个全局变量,一般通过extern在头文件.h中声明该变量,然后在源文件.cpp中定义,如果在头文件中定义的话,多个源文件同时引用该头文件,会造成重复定义的错误。
关于声明,根据C++标准的规定,一个变量声明必须同时满足两个条件,否则就是定义:
(1)声明必须使用extern关键字;(2)不能给变量赋初值
extern int a; //声明
int a; //定义
int a = 0; //定义
extern int a =0; //定义
D、并不是所有的东西都要放到同一头文件里面,可以根据需要放到不同的头文件中