gpt4 book ai didi

c++ - 访问公共(public)头文件的多个源文件和头文件

转载 作者:行者123 更新时间:2023-11-27 22:52:44 35 4
gpt4 key购买 nike

在我的项目中,我有多个头文件和源文件。这些文件中的大多数都包含一个名为 settings.h 的头文件这个文件看起来像这样

#ifndef EXTERNAL_H
#define EXTERNAL_H

#define processID 12
...
#endif // EXTERNAL_H

现在我注意到,如果我将 processID 从定义更改为这样的类型

int processID;

我开始收到链接器错误。我想知道是否有办法将 processID 从 define 类型更改为 int 类型。

最佳答案

链接器错误是由于在包含该 header 的每个源文件中生成了一个具有相同名称的符号。

所以解决这个问题你有多项选择,但 C++11 中的一个应该是方法,它是 constexpr 说明符:

constexpr int processID = 12;

另一种解决方案是使用 static 说明符,但这将在每个源中创建一个具有相同名称的不同变量,只是防止冲突,因为每个符号都隐藏在每个源中。

第三种解决方案是使用 const int,因为 const 值无法修改,无论每个源文件中生成了多少,它们都会解析为相同的值。

关于c++ - 访问公共(public)头文件的多个源文件和头文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948941/

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