我正在写一个学校项目。在我的项目中,有几个函数可以处理 20-30 个变量。有没有办法可以在一个单独的文件中声明和初始化这些全局变量,这样我的主要代码就可以保持简短和整洁?
问问题
1978 次
3 回答
6
您可以将它们创建为单独的全局变量,extern
在头文件中声明它们,并在一个 C 文件中定义它们。
您还可以在 a 中收集相关变量struct
,并以相同的方式处理这些变量。
然而,最好的办法是减少对全局变量的需求。如果变量是相关的,你可以传递struct
s 吗?它们是用来做什么的?
于 2013-04-19T05:17:13.477 回答
3
将这些变量包装在一个结构中并将这个结构传递给这些函数。保留全局变量通常不是一个好主意。
于 2013-04-19T05:16:36.247 回答
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"; }
}
于 2013-04-19T06:35:47.847 回答