c - 结构中的多种类型 - C

标签 c variables struct global-variables

初学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/

相关文章:

cURL 终端命令成功执行,而 libcurl 程序没有

JavaScript:常量有什么用?

Ruby 变量初始化

php - "Notice: Undefined variable"、 "Notice: Undefined index"、 "Warning: Undefined array key"和 "Notice: Undefined offset"使用 PHP

c - 为什么我们不能在结构中初始化成员?

c - error C2071 非法存储类,在 C 中定义枚举类型

c - 在 vim 中,如何删除所有的 C 和 C++ 注释?

c - 在 C 中初始化数组

arrays - 如何使用映射分配结构类型值?

c - 将数据从struct读取到二维数组c中