举例: 在C语言 使用结构体和联合体,设计应用全局变量
/*举例:在C语言 使用结构体和联合体,设计应用全局变量*/ #include "stm32f1xx_hal.h" typedef struct/*定义 GSP结构体*/ { uint8_t gps_year_time; /*,单位 年 ,占1BYTES*/ uint8_t gps_month_time; /*,单位 月 ,占1BYTES*/ uint8_t gps_day_time; /*,单位 日 ,占1BYTES*/ uint8_t gps_hour_time; /*,单位 时 ,占1BYTES*/ uint8_t gps_minute_time; /*,单位 分 ,占1BYTES*/ uint8_t gps_second_time; /*,单位 秒 ,占1BYTES*/ float longitude_angle; /*经度*/ float altitude_angle; /*经度*/ } GPSDef; typedef struct/*定义 太阳位置结构体*/ { float solar_zenith_angle; /*太阳高度角,单位 弧度,占4BYTES*/ float solar_azimuth_angle;/*太阳方位角,单位 弧度,占4BYTES*/ float apparent_solar_time; /*太阳方位角,单位 秒 ,占4BYTES*/ } sunPositionDef; typedef union/*定义联合体,支持按字节访问和按结构体访问*/ { uint8_t bytes[128]; struct { GPSDef gps_var; sunPositionDef sunPosition_var; } words; } globalVariableDef; globalVariableDef globalVariable;//定义全局变量
全局变量使用举例
globalVariable.words.gps_var.gps_day_time =12;//设置为12月