typedef struct 與 struct
阿新 • • 發佈:2017-10-13
自然 對象 別名 struct bsp 面向對象 如果 我們 此外
學c++之前最好先學c。特別要說的是,一些雖然冠名為c++的項目的文件中卻大部分都是c的代碼。
比如我們這個例子:
在c語言中,定義一個結構體和其實適合c++中有區別的。比如我們有如下的代碼:
struct Animal
{
float weight;
};
如果是c代碼,要定義一個Animal對象,則需要這麽寫:
struct Animal a1;
而如果是c++大家都熟悉,struct Animal可以當做類似class Animal來使用。那麽就是:
Animal a1;
明顯可以看得出來,因為c不是面向對象的,所以它的語法在針對對象的時候也有些蹩腳。所以要專門的告訴編譯器Animal是一個struct,不然編譯器不知道。
但是每次都這樣寫自然非常麻煩切不美觀。所以才有了typedef struct 原名 {結構體中的內容};別名; 這樣的格式。
typedef struct Animal
{
float weight;
}Ani;
這樣 Ani 就等價於 struct Animal。定義一個變量的時候就可以寫成:
Ani a1;
最後說一下,不管是c代碼還是c++代碼,諸如 typedef struct 原名 {結構體中的內容};別名; 這樣的格式 來聲明結構體,在兩種語言中的意義是相同的,也就是所謂的抹掉了兩種語言之間的差別。此外還能保證這條語句是一個聲明語句而非定義了對象。因此這樣來聲明結構體,在c/c++的程序中是非常值得推薦的。
typedef struct 與 struct