舉例: 在C語言 使用結構體和聯合體,設計應用全域性變數
阿新 • • 發佈:2022-12-08
/*舉例:在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月