题目:

以下关于头文件,说法正确的是(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、并不是所有的东西都要放到同一头文件里面,可以根据需要放到不同的头文件中

转载于:https://www.cnblogs.com/AndyJee/p/4462692.html

关于头文件的一道选择题相关推荐

  1. c malloc 头文件_C/C++求职者必备 23 道面试题,一道试题一份信心!

    1. Static有什么用途? (1)函数体内static变量的作用范围是该函数体,该变量的内存只被分配一次,因此它的值在下次调用时不变: (2)模块内的static全局变量同样只能在该模块内的函数访 ...

  2. 学习笔记15-C语言-预处理指令、条件编译、头文件

    预处理指令: 程序猿编写的代码不是标准C代码,并不能被真正的编译器索编译,需要一段程序把代码翻译一下. 翻译的过程叫做预处理,被翻译的代码叫做预处理指令,以#开头的都是预处理指令查看预处理的过程:gc ...

  3. 关于使用C++万能头文件时定义y1报编译错误的那点事

    事情是这样发生的,我在写一道网格求最短路径的题,在全局变量中定义了名为y1的变量,结果编译错误了. 肉眼排错五分钟后没有结果,于是我把代码删成这样: #include <bits/stdc++. ...

  4. C语言中的头文件与原文件

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...

  5. C语言中,头文件的作用,头文件和源文件的关系(转)

    简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段  2.词法与语法分析阶段  3.编译阶段,首先编译成纯汇编语 ...

  6. 头文件和源文件的关系

    一.关于头文件和源文件之间的关系,理解把握要点在于: 1.头文件是给编程开发人员看的,而源文件是给编译器看的: 2.在#include头文件时,编译器直接把相应的头文件复制粘贴到源文件的相应位置: 3 ...

  7. OpenCV 笔记(05)— opencv.hpp 头文件作用(是其它所有头文件的全集)

    在编辑器中通过点击 #include "opencv2/opencv.hpp" 头文件就可以看到该头文件的定义如下 #ifndef OPENCV_ALL_HPP #define O ...

  8. linux 下根据cpp文件快速书写头文件

    假设我们现在有一个hello.cc文件,我们如果想要书写它的头文件hello.h,使用如下的命令即可: cat hello.cc | grep "^\w.*)$" > hel ...

  9. C++ .h(头文件) 与 .cpp(源文件) 的使用

    .h 文件: .h是头文件 ,里面主要是写类的声明(包括类里面的成员和方法的声明).函数原型.#define常数等, 注意.h文件写的时候有特定的格式就是开头和结尾 #ifndef TEST_HEAD ...

最新文章

  1. 使用websploit在局域网全自动渗透
  2. Unet实现图像分割(一)
  3. OSPF路由聚合实验(详细)
  4. Android开发学习笔记:Gallery和GridView浅析
  5. gnuplot_i 文件的说明,翻译成的中文
  6. 华为微型计算机b515,华为MateStation B515台式机曝光:五种配置
  7. PHP学习之六:预定义常量
  8. node link 踩坑记录
  9. sql中带in条件的查询及提高效率
  10. javascript删除数组某个元素
  11. android原生ios,Windows Phone的原生iOS/Android应用程序
  12. Java中的跨站请求伪造
  13. 勒索软件不可破解?谁在标题党
  14. html设计一个调查问卷页面,如何设计一个网页调查问卷?
  15. 如何通过Flow制作简单的工作流 - 请假审批2
  16. 无限火力无法连接到服务器,“无限火力”回来啦!连拳头都要世界聚焦于你 全新7777装备即将上线!...
  17. struck.unpack
  18. 在线测试输入输出语法的测试
  19. 点宽与江苏大学建设量化金融实训平台项目
  20. 旧手机先别扔,余承东:留着升级一下鸿蒙

热门文章

  1. 什么是PV UV PR值
  2. 【连载】【FPGA黑金开发板】Verilog HDL那些事儿--数码管电路驱动(八)
  3. tensorflow单变量线性回归
  4. python寻找1000以内的阿姆斯特朗数
  5. tinymce引入后未显示_继金博大后再弃一子!大商接连关闭在郑亏损店面,未来或布局高端购物中心...
  6. Varnish——CDN加速的实现(多个后端服务器实现负载均衡、虚拟主机)
  7. 在recovery模式下命令控制手机_安卓手机开机密码忘记,解锁教程
  8. NameError: name ‘List‘ is not defined
  9. dpkg: error processing package sunloginclient (--install): dependency problems - leaving unconfigur
  10. 05NumPy--5.3数组运算