![]() |
反復(fù)再把你剛才給我講的琢磨了一次,基本消化,謝謝你 |
typedef struct { .... } abc; struct abc { .... }下面等價吧,對嗎?一樣的, 此時的,abc,都是表示為結(jié)構(gòu)體的數(shù)據(jù)類型名 |
#define struct { .... } abc 可不可以用這個關(guān)鍵字? |
應(yīng)該是這樣 struct abc { ...... }; typedef struct abc abc; 第一條語句中的abc是結(jié)構(gòu)體名稱,要用它定義變量要寫struct abc 變量名; 第二句給struct abc起了別名叫abc,以后直接可以用abc定義變量, 如 abc 變量名; 之前寫的是將兩條語句合為一條寫,這樣可以省略結(jié)構(gòu)體名稱不寫。 |
這個abc與 struct等價吧,在定義新的變量名的時候,任意一個,即可,對不? 暈,不對不對,關(guān)鍵我看錯了 typedef 這是一個宏定義的關(guān)鍵字,是吧 |
還有一種常見的寫法 typedef struct { .... } abc; 意思是給結(jié)構(gòu)體類型起個別名叫abc,后面就可以直接用abc來定義變量,而不需要寫 struct 結(jié)構(gòu)體名稱 變量名列表; |
哦,寫在后面,就可以直接定義聯(lián)合體或結(jié)構(gòu)體的變量了。對吧,寫在前面,只能是一種數(shù)據(jù)類型耍已,并非實際變量。這樣理解對吧 |
不是的。 寫在union或struct后面的是聯(lián)合體或結(jié)構(gòu)體(類型)名稱。 而寫在末尾的是用類型定義的變量名,這樣就沒有定義類型名。 |
Powered by 單片機教程網(wǎng)