gpt4 book ai didi

c++ - 头文件礼仪

转载 作者:可可西里 更新时间:2023-11-01 18:20:44 32 4
gpt4 key购买 nike

当我创建一个将由多个开发人员使用的头文件时,使该头文件在其中使用的所有定义和声明方面自给自足是否被认为是一种良好的编程习惯。

例如:

头文件 1 : types.h

#ifndef TYPES_H
#define TYPES_H
typedef unsigned int uint16
#endif

头文件2:myheader.h

#ifndef MYHEADER_H
#define MYHEADER_H
uint16 myfunc(void);
#endif

我在 myheader.h 中使用了 uint16 而没有包含 types.h 。所以如果有人想在他们的源文件中包含 myheader.h,他们应该首先包含“types.h”,然后包含“myheader.h”。所以这实际上是在强制开发人员以特定顺序包含头文件。我一直认为这是不好的做法,但今天我在公司遇到了一些代码,其中要在一个文件中声明一个函数,您需要至少包含 4 个其他头文件。所以现在我很困惑,我是否遗漏了什么,是否有任何地方可以将其视为预期行为。

最佳答案

用不必要的类型污染全局命名空间是不好的做法。您能做的最好的事情就是在可能的情况下提供前向声明,并在必要时包含其他文件。在简化的情况下,您应该在使用它的每个 header 中包含定义 uint16 的 header 。

例如,如果您可以前向声明类型,这是首选。理由是如果您实际上不使用该类型,则前向声明就足够了。如果您确实使用了该类型,应该在明确声明的地方包含 header 。

关于c++ - 头文件礼仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11851565/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com