對於單片機C裏面結構體的認識

最近在學習單片機,作爲初學者,雖然在大學的時候學了點C語言但是因爲後面學了java所以C語言的基礎又還給了
老師,今天在看STM8 的教程的時候看到一段對結構體的描述,記在這裏做個備忘。
typedef struct GPIO_struct
{
  __IO uint8_t ODR; /*!< Output Data Register */
  __IO uint8_t IDR; /*!< Input Data Register */
  __IO uint8_t DDR; /*!< Data Direction Register */
  __IO uint8_t CR1; /*!< Configuration Register 1 */
  __IO uint8_t CR2; /*!< Configuration Register 2 */
}
GPIO_TypeDef;

這就是庫函數裏面對GPIO的結構體定義。對於理解可以用

typedef struct Man
{
    int age;
    int score;
}man;

int main()
{
    Man man1 = {20,80};
    Man man2 = {30,70};
    Man man3 = {40,99};
    printf("%d\n",man1.age);
    printf("%d\n",man3.score);
}

這樣理解更加容易理解 要一個人
怎麼辦呢 先typedef struct 一個名字叫做Man的結構體
定義內容,
年齡 分數 等等
然後結束帶個變量名man
其實聲明的結構體名 和結束的變量名可以相同。

typedef struct man
{
    int age;
    int score;
}man;  //還叫man

int main()
{
    man man = {40,50};//還叫man
    printf("%d\t%d\n",man.age,man.score);
}

這樣也可以,就是可讀性差了點。
我以後還是會結構體名字和變量名不一樣,免得自己混淆了。
關於更深入的用指針取結構體地址的,單片機貌似用不到。暫時先擱置,以後用到再慢慢了解~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章