LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

《GoogleC++编程风格指南》与#include”的区别

2023年4月7日 110点热度

#include与#include””的区别

一种是在包含指令#include前面””将头文件名括上去。这些方法用于标准或系统提供的头文件,到保存系统标准头文件的位置查找头文件。

另一种是在包含指令#include后用双冒号””将头文件包括上去。这些方法常用与程序员自己的头文件。用这些格式时deepin linux,C编译器先查找当前目录是否有指定名称的头文件,之后在从标准头文件目录中查找。

在使用标准的头文件包含次序可提高可读性,防止隐藏依赖。

#include的路径

项目内头文件应根据项目源代码目录树结构排列,防止使用UNIX特殊的快捷目录.(当前目录)或…(上级目录)。

比如linux include 头文件 路径,project/src/base/logging.h应当根据如下形式包含:

#include "base/logging.h"

#include的头文件包含次序

假如dir/foo.c的主要作用是实现或则测试dir2/foo2.h的功能,foo.c中包含头文件的顺序如下:

这些优先的次序排序保证当dir2/foo2.h遗漏个别必要的库时,dir/foo.c的预制构件会立即终止。因而这一条规则保证维护这种文件的人们首先见到建立终止的消息而不是维护其他包的人们。

假如依赖的符号被什么头文件所定义,就应当包含什么头文件linux include 头文件 路径,后置申明除外。例如要用到bar.h中的某个符号,哪怕包含的foo.h文件中早已包含了bar.h,也照样包含bar.h,除非foo.h有明晰说明它会手动提供bar.h中的符号。

举例

progect/foo/internal/fooserver.c的包含顺序如下:

 #include "foo/public/fooserver.h" //优先位置
#include 
#include 
#include 
#include 
#include "base/basictypes.h"
#icnlude "base/commandlineflags"
#include "foo/public/bar.h"

以上是《GoogleC++编程风格手册》的观点,在《C++编程思想》则包含另一种观点。

《C++编程思想》认为头文件的包含次序是从“最特殊到最通常”。

这是为了保证.h文件的组成部份不被它自身解析。由于被自身解析缺少明晰提供的申明或则定义。

总结

《GoogleC++编程风格手册》和《C++编程思想》倡导的包含头文件的次序各有优点linux shell,《GoogleC++编程风格手册》应该能大量降低隐藏的头文件依赖,而《C++编程思想》则很容易让你清楚晓得你所定义的插口是否和系统库及第三方库发生冲突。

隐藏依赖:即一个头文件依赖其他文件。所以无论是《GoogleC++编程风格手册》还是《C++编程思想》都是将自身的头文件置于第一位,由于这样可以易于发觉隐藏依赖。

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: include
最后更新:2023年4月7日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
用集群技术构建网络服务器的发展趋势提出了 搜狗输入法forlinux版本安装指南: Linux中常用的4种虚拟化方法以及它们相应的优缺点 如何在linux下安装搜狗输入法后怎么用的那些神秘传说? Linux虚拟服务器LVS自动化运维方法及运维系统介绍 时间戳和时区1Unix(/)接收的两个推测 安装Linux和Windows双系统的硬盘分区是什么意思? linux怎么安装输入法Linux系统可以通过以下步骤步骤安装 (Unix)Unix时间戳转换公式及Unix操作成时间公式 Linux计算机卸载文件系统的使用实例分析 史上最全的Linux系统设备文件系统类型汇总! AzureKubernetes启用自动节点映像升级解决方法升级 不懂这些硬盘分区的知识,怎么能够安装操作系统 Linux中进程间通信有多少方式,分别是什么? 系统备份和恢复:ISO文件的一些常见用途和用途 (扣丁学堂)进程通信的应用场景数据传输详解 Windows操作系统建立兼容Unix/Linux命令的命令行工具 小节知识架构学习目标了解掌握掌握了解早期进程间通信机制的原理 Unix系统下的安装在Unix平台下安装PHP的方法 Linux进程间通信(IPC)有几种方式
Linux桌面发行版的分类、如何选择?TinyCore3.1——世界上最小的Linux桌面发行版Linux生态系统开发工具总结环境开发的工具介绍Linux占用磁盘空间最小.lin的可定制性很高为什么有这么多Linux发行版,我们需要所有操作系统?kxJ红软基地软件说明(2014年10月更新)SSH安全加固的文字,网友点评通过密钥登录更加安全Linuxcentos7虚拟机装找Linux镜像找的!找了好多都是度盘!unix系统界面 没有最好的Linux发行版是什么样的?Part1linux修改文件夹权限:以上方法只能改变单个文件fedora 禁止root登录 如何在Linux上建立SSH安全连接的方法?安全快速实例学习:修改某个目录下的所有文件的权限bin是什么格式的文件怎么打开bin文件打开方法?科林·沃森:Ubuntu默认是关闭root帐户的,这样做(知识点)chmod系统控制用户对文件权限的命令如何在UbuntuLinux中启用和禁用root用户登录系统?Linux系统chmod命令使用数字修改文件权限的方式有哪些?关于Ubuntu修改密码及密码复杂度策略设置的文章!Ubuntu本地提权漏洞CVE-2017-16995程序员不输入密码进入Linux系统,孩子们永远不知道下一个bug
查看Linux内核Kernel的场景情况查看的几种方式 Windows是最好的操作系统,Ubuntu想(打)引(去)战(吧) 驱动开发:通过ReadFile与内核层通信详细介绍如何使用应用层 Linux版本(1)RedHatLinux内核0.02版正式诞生 谷歌将LyraV2总结为“一个更好、更快更通用的语音编解码器” 零基础小白入门Linux嵌入式操作系统的开发环境是什么,由哪些组成 KaliLinux安装无线网卡的过程最核心的两步:1 三个电视盒子外接USBU盘,24小时专人维护! Linux进程间通信(IPC)有几种方式 关于Linux学习使用计算机必然会接触操作系统的分析实例分享 bin是什么格式的文件怎么打开bin文件打开方法? Linux、apache、mysql、php合起来的简称本教程 remminaRemmina安装rdesktop 我试图将从java作业获得的时间信息与linux性能监视工具 软件介绍deepinlinux最新正版是深度推出的开源操作系统 netstat命令各个端口-u:指明显示显示UDP端口及进程服务 linux设备驱动开发详解–基于linux4.0内核设备树是一种描述硬件的数据结构 关于GNU/Linux操作系统上运行的Linux内核版本的通知 新手重装win7系统步骤和教程,你知道怎么操作吗 Windows操作系统建立兼容Unix/Linux命令的命令行工具
标签聚合
命令模式 文件目录 linux服务器 sudo 电脑 linux系统 虚拟机 软件 linux脚本 命令
书籍
课程
技术群
技术干货大合集↓
  • 2023年5月 / 86篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.