gpt4 book ai didi

c++ - 用于包括 guard 的名称?

转载 作者:太空宇宙 更新时间:2023-11-03 10:38:51 26 4
gpt4 key购买 nike

人们在为他们的 include guard 选择名称时是否倾向于遵循任何准则?我不明白为什么 .h 文件的名称会与 include guard 中使用的名称略有不同。例如,我看到了 sphere.h,然后是 #ifndef SPHERE_H_。我可以很容易地使用 SPHERE_ 还是名称必须匹配?下划线也是必须的吗?

最佳答案

要为头球后卫取一个好名字,请考虑以下几点:

1) 名称必须是唯一的,所以要长而具体。这通常可以通过包含项目名称、模块名称、文件名和文件扩展名等内容来实现。

2) 确保您不使用为实现保留的名称。因此,以下划线开头后跟大写字母的名称、包含双下划线的名称、以 _t 结尾的名称以及其他一些名称都已过时。

3) 使名称对人类读者有意义。所以不要只生成一个 UUID 并使用它。

4) 约定要求您使用全部大写的宏来区别于普通变量。

下划线不是需要的本身,但由于您不能在宏名称中使用空格,因此下划线是保持可读性的好选择。

因此,恕我直言,项目 baz 内的子模块栏中的文件 foo.h 的一个好的保护名称是:BAZ_BAR_FOO_H。

关于c++ - 用于包括 guard 的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355923/

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