在c中定義乙個結構體要用typedef,如:
typedef struct student stu;
於是在宣告變數的時候就可以:stu stu1;(如果沒有typedef就必須用struct student stu1;來宣告)。這裡的stu實際上就是struct student的別名:stu == struct student.
當然其實這裡可以不寫student,如下:
typedef struct stu;
這裡也就必須使用stu stu1來宣告物件了。
請看下面的**:
typedef struct tagmystruct mystruct;
上面的tagmystruct是識別符號,mystruct是變數型別。上述**其實完成了兩個操作:
(1)定義乙個結構體:
struct tagmystruct;
tagmystruct稱為tag,即標籤,實際上是乙個臨時名字,不論是否有typedef struct關鍵字和tagmystruct一起,都構成了這個結構體。此時我們可以使用struct tagmystruct varname來定義變數。但是注意,使用tagmystruct varname來定義變數是不對的。因為struct和tagmystruct合在一起才能表示乙個結構體型別。
(2)typedef為這個新的結構起了乙個名字,叫mystruct.
typedef struct tagmystruct mystruct. 因此mystruct實際上相當於struct tagmystruct,我們可以使用mystruct varname來定義變數。
對於同樣的**,在c和c++中也有不同的理解。如下:
typedef struct tagmystruct mystruct;
在c中,這個結構體宣告結構體變數的方式有兩種:
1)struct tagmystruct 變數名;
2)mystruct 變數名;
在c++中:
1)struct tagmystruct 變數名;
2)mystruct 變數名;
3)tagmystruct 變數名;
本文參考:
C語言結構體定義 typedef struct
c語言規範,定義結構體 typedef struct answer header answer header t,panswer header t answer header為結構名,這個名字主要是為了在結構體中包含自己為成員變數的時候有用 answer header t為struct answer...
typedef和typedef struct的區別
今天做的專案中,看師兄寫的 有typedef struct,可是自己之前一直都不是特別了解這個是具體代表什麼意思,因為平時很少習慣用這個,一般都是直接就宣告類了,所以上網查了下,現在有所明朗了。分三塊來講述 1 首先 在c中定義乙個結構體型別要用typedef typedef struct stud...
C語言 C語言組成
c語言由多個 c 檔案和 件組成 c c語言源 檔案 h c語言標頭檔案 c檔案 組成 1 標頭檔案 include include student.h 包括起來的是系統的標頭檔案 包含起來的是自己定義的檔案 2 巨集定義 define a.不帶引數的巨集 define 巨集名 替換的內容 defi...