摘要:

各司其责:应该确保所编写的每个头文件都能够独自进行编译,为此需要包含其内容所依赖的所有头文件。

如果一个文件包含某个头文件时,还要包含另一个头文件才能工作,就会增加交流障碍,给头文件的用户增添不必要的负担。

现在的C++编译器基本上都能够自动识别头文件保护符,甚至不会两次打开同一个头文件。有些编译器还提供了预编译的头文件,有助于确保不会经常分析那些常用而且很少变化的头文件。

但是要记住一点,不要包含并不需要的头文件,它们只会带来凌乱的依赖性。在编写程序时,构建时,应独立编译每个头文件,并确认没有产生错误或者警告,用这种方法来确保每个头文件都是自给自足的。

C++编程规范之23:头文件应该自给自足的更多相关文章

  1. google C++编程风格指南之头文件的包括顺序

    google C++编程风格对头文件的包括顺序作出例如以下指示: (1)为了加强可读性和避免隐含依赖,应使用以下的顺序:C标准库.C++标准库.其他库的头文件.你自己project的头文件.只是这里最 ...

  2. socket编程中用到的头文件整理

    socket编程中需要用到的头文件 sys/types.h:数据类型定义 sys/socket.h:提供socket函数及数据结构 netinet/in.h:定义数据结构sockaddr_in arp ...

  3. unix网络编程-配置unp.h头文件

    第一步进入:www.unpbook.com,下载unp的随书代码.新建一个目录,将压缩包拷贝到这一目录下面,然后将压缩包直接解压:tar -zxvf  压缩包名.tar.gz 完成上一步后,进入到un ...

  4. C++编程规范(101条准则)

    记录学习,方便以后查看.  2014-12-28 看完这本书,但是我做到的又有多少呢?确实有一部分 0 不要拘泥于小节 1 在高警告级别干净利落的进行编译,不放过任何警告 2 使用自动构建系统 3 使 ...

  5. arpa/inet.h所引起的Segmentation fault及网络编程常见的头文件

    最近在学习Linux网络编程方面的知识,感觉还是有些困难.主要是对协议过程的理解,还有socket的API的理解不够深刻.今天复习编写了一个TCP的服务端和客户端的程序实现client.c从命令行参数 ...

  6. c++编程规范的纲要和记录

    这是一本好书, 可以让你认清自己对C++的掌握程度.看完之后,给自己打分,我对C++了解多少? 答案是不足20分.对于我自己是理所当然的问题, 就不提了, 记一些有启发的条目和细节: (*号表示不能完 ...

  7. c++编程规范的纲要和记录 (转)

    这是一本好书, 可以让你认清自己对C++的掌握程度. 看完之后,给自己打分,我对C++了解多少? 答案是不足20分. 对于我自己是理所当然的问题, 就不提了, 记一些有启发的条目和细节: (*号表示不 ...

  8. 《C+编程规范 101条规则、准则与最佳实践》笔记

    <C+编程规范 101条规则.准则与最佳实践> 0.不要拘泥于小节(了解哪些东西不应该标准化) * 与组织内现有编码规范一致即可 * 包括但不限于: - 缩进 - 行长度 - 命名规范 - ...

  9. C++编程规范纲要要点小结

    这是一本好书, 可以让你认清自己对C++的掌握程度. 看完之后,给自己打分,我对C++了解多少? 答案是不足20分. 对于我自己是理所当然的问题, 就不提了, 记一些有启发的条目和细节: (*号表示不 ...

随机推荐

  1. 折腾slidingmenu

    转自自己jekyll博客 alanslab.cn 第一次用gimp做这么大工程,出乎意料,蛮好用的.以前ps倒是蛮熟练的,只摸 过两下gimp,感觉望而生畏.今天硬着头皮折腾了一阵子,发现最起码上图可 ...

  2. 【POJ】2492 A bug's life ——种类并查集

    A Bug's Life Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 28211   Accepted: 9177 De ...

  3. openNebula rgister img instance vms error collections

    1, 注册镜像报错信息 ERROR="Fri Nov 21 12:57:17 2014 : Error copying image in the datastore: Not allowed ...

  4. cors技术

    简称跨域资源共享: 若是配置nodejs: 需在公共路由添加三句话:代码如下: // 全局头设置 app.all('*', function(req, res, next) { res.set({ ' ...

  5. HDU 4914 Linear recursive sequence(矩阵乘法递推的优化)

    题解见X姐的论文 矩阵乘法递推的优化.仅仅是mark一下. .

  6. cron 定时任务

    cron 是linux下的定时任务: M H D m d cmd.  这是一种cron文件格式.   M: 分钟(0-59). H:小时(0-23). D:天(1-31). m: 月(1-12). d ...

  7. eclipse中删除多余的工作空间记录

    所以对于不再使用的工作空间,每次出现在eclipse的“文件”>>“切换工作空间”里面的时候就觉得特别不爽. 所以认真研究了eclipse目录之后让我找到了,删除不需要工作空间记录的方法. ...

  8. 认识jeecms开源项目

    1. JEECMS源代码基本结构及相关技术简介: 参考:http://blog.csdn.net/caozhenyu/article/details/47005623

  9. ubuntu14.04下手动安装JDK + eclipse + Pydev

    说明:本文在root用户下进行,如不是root用户命令前加sodu 一.手动安装JDK 1.下载JDK 从官网http://www.oracle.com/technetwork/java/javase ...

  10. Problem B: 最少步数

    DescriptionA friend of you is doing research on theTraveling Knight Problem (TKP) where you are to f ...