天天看點

C語言:用typedef定義結構普通定義結構的方法使用typedef定義結構typedef定義普通變量類型名

普通定義結構的方法

//定義結構Date1
struct Date1
{
    int year;   //年
    int mouth; //月
    int day;  //日
};

int main()
{
    struct Date1 birth1={2002,6,28};                           //聲明Date1類型的結構變量birth1,同時指派
    printf("某個漂亮小姐姐的生日是%d年%d月%d日\n",birth1.year,birth1.mouth,birth1.day);//列印結構變量birth2
    return 0;
}
           

輸出結果:

C語言:用typedef定義結構普通定義結構的方法使用typedef定義結構typedef定義普通變量類型名

那每次要聲明結構Date1類型的變量,都要寫struct Date1 …(變量名)…,豈不是好煩?

使用typedef定義結構

使用typedef定義結構,會讓聲明語句變得簡潔,請看下面的代碼:

#include <stdio.h>
//定義Date2結構類型,用DATE作為結構變量聲明語句
typedef struct Date2
{
    int year;   //年
    int mouth; //月
    int day;  //日
}DATE;

int main()
{
    DATE birth2={2001,6,17};                                 //用代号DATE聲明Date2結構變量birth2
    printf("噢~記錯了是%d年%d月%d日\n",birth2.year,birth2.mouth,birth2.day);//列印結構變量birth2
    return 0;
}
           

輸出結果:

C語言:用typedef定義結構普通定義結構的方法使用typedef定義結構typedef定義普通變量類型名

那麼每次聲明Date系列結構變量,struct Date1就換成了DATE,是不是友善多了(如果聲明語句使用次數很多的話)。同時,這麼一來Date2就變得“徒有其名”了,以後的聲明完全用不上。那就沒必要“浪得虛名”了,可以省略掉。不過最好在附近打上注釋,否則自己都忘了,這個結構幹啥用的。

#include <stdio.h>
//定義Date2結構類型,用DATE作為結構變量聲明語句
typedef struct
{
    int year;   //年
    int mouth; //月
    int day;  //日
}DATE;

int main()
{
    DATE birth2={2001,6,17};                                 //用代号DATE聲明Date2結構變量birth2
    printf("噢~記錯了是%d年%d月%d日\n",birth2.year,birth2.mouth,birth2.day);//列印結構變量birth2
    return 0;
}

           

輸出結果(跟上面一模一樣):

C語言:用typedef定義結構普通定義結構的方法使用typedef定義結構typedef定義普通變量類型名

希望以後師妹不要學C語言,不然我記錯她的生日怕是會被打死。typedef的用法并沒有那麼膚淺。還可以用來定義自己喜歡的變量類型名。

typedef定義普通變量類型名

上代碼塊:

#include <stdio.h>
typedef int YEAR   ;//以後就可以用YEAR來聲明整型(int)變量了
typedef float SCORE;// 以後就可以用SCORE來聲明單精度浮點型型(float)變量了

int main()
{
    YEAR y=2020;
    SCORE s=150;
    printf("祝師妹%d聯考,科科%.0f,旗開得勝!Yeah!",y,s);
    return 0;
}
           

輸出結果:

C語言:用typedef定義結構普通定義結構的方法使用typedef定義結構typedef定義普通變量類型名

繼續閱讀