当前位置: 首页 > news >正文

C++头文件使用精要

一、头文件包含顺序

根据《Google C++ 编程风格指南》,对于Foo.cpp,顺序推荐为:

  1. Foo.h
  2. C标准库
  3. C++标准库
  4. 其它库的头文件
  5. 本工程的头文件

 另外,在包含头文件时应该加上头文件所在工程的文件夹名,可区分重名文件。即假如你有这样一个工程base,里面有一个logging.h,那么外部包含这个头文件应该这样写:#include "base/logging.h",而不是#include "logging.h"。

二、防止头文件被重复包含

1. Include Guards(预处理器宏):这是防止头文件重复包含最常见的方法之一。在头文件的开头和结尾使用预处理器宏,如下所示:

#ifndef MY_HEADER_FILE_H
#define MY_HEADER_FILE_H// 头文件内容#endif // MY_HEADER_FILE_H

当头文件第一次被包含时,`MY_HEADER_FILE_H` 宏会被定义,头文件的内容会被包含。当头文件再次被包含时,由于宏已经被定义,头文件的内容将被忽略。

2. Pragma Once:使用 `#pragma once` 也可以达到相同的效果,它是一种更现代的方法。在头文件的开头加入 `#pragma once`:

 #pragma once

`#pragma once` 指令告诉编译器只包含一次该头文件,不需要显式的宏定义和条件判断。

待续...

http://www.lryc.cn/news/115795.html

相关文章:

  • Flink之SideOutput(数据分流)
  • Android Studio新版本logcat过滤说明
  • carsim与matlab仿真
  • rust里如何快速实现一个LRU 本地缓存?
  • MQTT 订阅接收消息 mosquitto 方式
  • 以mod_jk方式整合apache与tomcat(动静分离)
  • springboot动态数据源切换
  • 代码随想录训练营day14
  • 功能测试进阶自动化测试如何摸清学习方向,少走弯路呢?
  • 检测前端是否可以ping通后端返回的ip地址
  • SMART司马他法则(目标管理)
  • 【LeetCode】删除并获得点数
  • SciencePub学术 | 传感器类重点SCIE征稿中
  • 移动端开发基础总结
  • 小X学游泳(深搜)
  • 分布式协议与算法——拜占庭将军问题
  • MySQL数据库管理的基本原则和技巧
  • SQL-每日一题【1193. 每月交易 I】
  • 探析青少年口才训练在个人发展中的重要性与影响
  • HTML 元素的 class 和 id 属性有何区别?
  • 关于GKPhoto点击放大没有图片只有缺省图
  • 建议收藏!总结了 42 种前端常用布局方案
  • spring AOP两种动态代理
  • 英语——副词
  • Vue 本地应用 记事本 v-on v-model v-for使用
  • 智能质检技术的核心环节:语音识别和自然语言处理
  • Python 中的值传递 和 引用传递
  • 【雕爷学编程】Arduino动手做(200)---WS2812B幻彩LED灯带6
  • ChatGPT在工作中的七种用途
  • redis 持久化 与 键淘汰策略