gpt4 book ai didi

c++ - 文件本地定义

转载 作者:可可西里 更新时间:2023-11-01 10:09:33 25 4
gpt4 key购买 nike

这个问题更多地属于最佳实践和用于分发的干净/安全代码的类别。

我正在使用 C++ 开发一个数学库,用于我的作品集,并在我大学的最后两个学期使用。我希望这个库非常易于使用,并尽量减少与现有代码发生冲突的可能性。

为了便于阅读,我将 TEMP_T 定义为类的模板,位于每个头文件 (math/matrix/vec/quaternion) 的顶部。它看起来像下面这样:

#ifdef TEMP_T
#define UNDEF_TEMP_T TEMP_T // Used to reset any other definitions later.
#endif // TEMP_T
#define TEMP_T template<class T> // Used to make the code more readable.

稍后,在文件末尾,我重置了预先存在的定义,如果有必要的话:

#undef TEMP_T // Get rid of our definition.
#ifdef UNDEF_TEMP_T
#define TEMP_T UNDEF_TEMP_T // Reset the previous definition, if it existed.
#undef UNDEF_TEMP_T
#endif // UNDEF_TEMP_T

我的问题:这会成功地创建一个对文件可见的定义,并且只对文件可见吗?如果是这样,这就是你完成这样的事情的方式吗?如果不是,能否请您谈谈您做事方式背后的理性?

最佳答案

IMO 的可读性要差得多,属于预处理器滥用类别,我强烈建议使用实际定义,这将使您的代码更容易被其他人阅读,这是可读性的重点。

关于c++ - 文件本地定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3329708/

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