1. 程式人生 > 其它 >舉例: 在C語言 使用結構體和聯合體,設計應用全域性變數

舉例: 在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月