我正在写一个学校项目。在我的项目中,有几个函数可以处理20-30个变量。有没有办法可以在一个单独的文件中声明和初始化这些全局变量,这样我的主要代码仍然简洁明了?
答案 0 :(得分:6)
您可以将它们创建为单独的全局变量,在头文件中使用extern
声明它们,并在一个C文件中定义它们。
您还可以在struct
中收集相关变量,并以相同的方式处理它们。
然而,最好是减少对全局变量的需求。如果变量是相关的,你可以只传递struct
s?它们用于什么?
答案 1 :(得分:3)
将这些变量包装在一个结构中,并将此结构传递给这些函数。保持全局变量通常不是一个好主意。
答案 2 :(得分:2)
通常,您不必使用全局变量。
// Data.h
#ifndef AMIN_PROJECT0_DATA_H_INCLUDED
#define AMIN_PROJECT0_DATA_H_INCLUDED
#include <string>
struct Data {
int age;
std::string surname;
std::string firstname;
};
#endif // AMIN_PROJECT0_DATA_H_INCLUDED
现在,您可以在源文件中包含该标头,然后他们就可以使用Data
。因此,您可以声明以Data
作为参数的函数:
void checkName(Data const& d) {
if (d.surname.empty()) { std::cerr << "What, no surname!\n"; }
if (d.firstname.empty()) { std::cerr << "What, no first name!\n"; }
}