如何从一个 .h 获取 int 到另一个 .h
How to get int's from one .h to another .h
我有两个头文件,我需要头文件 1 中的一些变量。以下是一些可以提供帮助的信息。
int SelRace, ...
char Race[80], ...
这两个来自头文件 1,我需要头文件 2 中的这些值跟随 if() 语句。在头文件 1 中,SelRace 被分配了 1、2 或 3,完成后我尝试再次调用它。这是头文件 2 中需要它的地方。
while (1)
{
if(SelRace == 1)
{
cout << "[text here]" << endl;
}
else if(SelRace == 2)
{
cout << "[text here]" << endl;
}
else if(SelRace == 3)
{
cout << "[text here]" << endl;
}
else
{
cout << endl;
}
}
种族[80]将在[此处文本]的不同位置重印,因为我尚未填写。根据 SelRace 的值,Race[80] 也写入了不同的字符串。
那么我该怎么做呢?
你应该
- 在
.cpp
中定义它们,而不是像现在所做的那样.h
。 - 在
.h
中将它们声明为外部 - 在第二
.cpp
中包含上述.h
步骤 2 和 3 可以通过在 billz 建议的.cpp
中将它们声明为 extern 来合并,具体取决于您期望使用这些全局变量的范围。
不应将变量定义放在头文件中。如果这样做,则不能将它们包含在多个源文件中,因为变量将具有多个定义。
而是将定义放在源文件中,将声明放在头文件中。然后,可以将头文件包含在需要使用变量的所有源文件中。
声明应为extern
声明,例如:
extern int SelRace;
extern char Race[80];
extern
关键字告诉编译器变量是在另一个位置定义的,因此链接器可以正确引用它。
您可以在一个头文件中定义一个 extern 变量,然后在另一个头文件中使用它,如下所示
extern int SelRace;
在头文件中,仅声明函数原型。将定义放在 cpp 文件中并确保只有一个定义,但如果需要使用变量,请使用extern
。
一.cpp
int SelRace, ...
char Race[80], ...
另一个.cpp
extern int SelRace, ...
extern char Race[80], ...
具有while loop
的函数定义应转到 cpp 文件而不是头文件。
相关文章:
- 我如何获取从 C++ 到 C 的映射<字符串、int>#
- 在c++中获取两个大int,并将它们存储在数组中
- 有没有函数可以在擦除 c++ 中获取 deque.begin() 的 int 值?
- Qt 原子 int 获取并立即设置
- 当我们声明 cin 为 int 并从 cin 中获取输入并在 cout 中打印 cin 时会发生什么?
- 获取INT中的数字数,而无需分开10
- 指针 - 接收地址的函数是否可以获取 int?
- 从void指针中获取int,该指针指向一个简短的指针
- 从数组列表中的字符串迭代器获取 int dat<struct>
- 如何在 C++ 中使用 fstream get() 获取 int
- .NET 如何通过套接字 C-Sharp 获取 int
- 如何从 stl 向量中最小元素的迭代器位置获取 int/size_t 值
- 从 boost::variant 生成分段错误中获取 int
- 从字符数组中获取 int
- 尝试从字符串中获取 int 时出错
- 获取int而不是float
- 如何获取int变量的输入并将其写入文件
- 如何从文本文件的每行获取int值?
- 从char*缓冲区中的数字中获取int
- 如何从一个 .h 获取 int 到另一个 .h