gpt4 book ai didi

C++ - 最佳实践#define 只写一次的值?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:35:16 25 4
gpt4 key购买 nike

在我们的代码中,我们需要处理配置,为此我们需要将配置名称作为 std::string 传递给我们自己的框架。

示例代码:

framework.handle_config("enable-radio-link")
framework.handle_config("enable-tv-link")
framework.handle_config("enable-gateway-link")
so on to ...n

这些字符串将只写在一个地方,不会在其他任何地方重复。除了只有 2 或 3 个配置。

我的队友希望将其作为#define 并作为最佳实践使用。喜欢

#define ENABLE_RADIO_LINK "enable-radio-link"
#define ENABLE_TV_LINK "enable-tv-link"
framework.handle_config(ENABLE_RADIO_LINK)
framework.handle_config(ENABLE_TV_LINK)

我在想,这只会让更多时间阅读代码并交叉引用这些#defines 的含义。

#define(或 static const whatever)它们并使用它真的是最佳实践,即使它只在一个地方使用吗?

这样做有什么好处?

最佳答案

由于它是您自己的框架,要获得“只有一个地方”的好处,更好的办法是更改枚举类 的字符串。您的每一个定义都会污染命名空间,并且对所有include您的 header 的人都是可见的。这还提供编译时检查哪些标志被认为是有效的。

enum class MyConfiguration {
EnableRadioLink,
EnableTVLink
};

void enableConfig(MyConfiguration config) {
// Do something with config
}

int main() {
//...
enableConfig(MyConfiguration::EnableRadioLink);
enableConfig(MyConfiguration::EnableTVLink);
//...
return 0;
};

关于C++ - 最佳实践#define 只写一次的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35438716/

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