包括守卫风格,C++

Posted

技术标签:

【中文标题】包括守卫风格,C++【英文标题】:Include guard style, C++ 【发布时间】:2012-09-08 00:32:14 【问题描述】:

我有一个 .h 文件,其中包含几个类定义。我想在这个文件中使用 C++ 的包含防护;但是,我想知道哪种使用包含防护的方式被认为是正确/正确的?

一个守卫保护一切

#ifndef FOO_BAR
#define FOO_BAR

class Foo

;

class Bar
      
;

#endif

或多个单独的守卫。

#ifndef FOO
#define FOO

class Foo

;

#endif

#ifndef BAR
#define BAR

class Bar
      
;

#endif

【问题讨论】:

一个就够了。两个类都应该只定义一次,这发生在守卫内部的任何东西上。 【参考方案1】:

它们是包含守卫,防止重复包含文件。因此,它们应该为每个文件定义一次,而不是每个类或函数或其他任何东西。

【讨论】:

【参考方案2】:

您是否考虑过使用 #pragma 一次?大多数现代编译器都支持它。

Is #pragma once a safe include guard?

【讨论】:

以上是关于包括守卫风格,C++的主要内容,如果未能解决你的问题,请参考以下文章

C注释风格转化为C++风格注释

C++ 中的内部 typedef - 好风格还是坏风格?

C与C++风格的字符串辨析

如何使 c++ 代码既可用于 Qt 项目(QTL 风格)也可用于 C++ 项目(STL 风格)

ROS从入门到精通系列(二十六) 标准化ROS代码风格 - . C++ 风格指南

ROS从入门到精通系列(二十六) 标准化ROS代码风格 - . C++ 风格指南