初学C,习惯Java OOP。我必须使用 struct
作为我的全局变量的持有者,系统将不断地写入/读取。
我在结构中有 3 种不同类型的变量,我不确定这是否会导致问题。
此外 - 我是否需要在头文件中声明结构,以便在其他 C 文件中使用它?
在不同函数中从该结构访问变量的最快和更好的方法是什么?//使用这些变量的函数在同一个 C 文件中。
这是我制作的结构本身:
struct Data
{
double percentage_Height = 0;
double speed_Height = 0;
double time_Height = 0;
int distance_Height = 0;
double percentage_Distance = 0;
double speed_Distance = 0;
double time_Distance = 0;
int distance_Distance = 0;
uint16_t valueSpeed = 0;
double speedOfMotor = 0;
int tilt = 0;
};
以及一个应该使用结构的某些字段的函数示例:
int getHeight()
{
percentage_Height = getIncline()/90.0;
speed_Height = db_speed_sensor();
time_Height = 0.000027; // [h] , 100ms
distance_Height=0;
if (percentage_Height == 0)
{
percentage_Height = 1;
}
distance_Height = speed_Height * time_Height * percentage_Height * 100;
return distance_Height;
}
那么访问这些结构字段的最佳方式是什么,而不是只编写全局变量?
编辑:它是一个实时操作系统,因此任务(类似于线程)将访问结构中的数据。不知道会不会有什么变化...
最佳答案
定义一个 Data
类型的全局变量,并在任何需要的地方访问它的成员。
struct Data GlobalData;
int getHeight()
{
GlobalData.percentage_Height = getIncline()/90.0;
GlobalData.speed_Height = db_speed_sensor();
....
}
- 如果你想在多个文件中使用它,最好在头文件中定义结构。
关于c - 结构中的多种类型 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16816547/