typedef struct引起的結構體問題

2021-09-04 17:10:30 字數 952 閱讀 2978

原來一直認為結構體定義只有struct開頭的方法。今天看一本書突然看到typedef struct開頭的結構體定義方式吧自己搞的一臉懵逼。既然如此那就看看吧!!

1、先定義結構體型別,再定義變數

注:注意在c語言中定義結構體變數的時候是struct student打頭的。

struct student; 

struct student stu1,stu2;

2、結構體型別和結構體變數同時定義

struct studentstu1,stu2;
3、直接定義結構體型別變數(這個以前還真沒留意)

struct

stu1,stu2;

其實上面第一種方法我個人用的最多。

但是,每一次定義變數的時候都要寫struct感覺怪怪的。c語言提供了一種簡便些的方式——typedef。

typedef struct studentstu; 

stu stu1,stu2;

也就是說:對c語言來說上述的使用typedef定義結構體的方式中stu相當於struct student的乙個別名。即stu=struct student。

在c++中一切都是最簡捷的方式(果然是語言的進步呀!!):

struct student; 

student stu1,stu2;

但是,如果我也加上typedef會怎麼樣呢?答案如下:

struct studentstu1; //stu1是乙個結構體變數

typedef struct studentstu2; //stu2是乙個結構體型別=struct student

結論:在c++中定義結構體的時候不要整什麼typedef。此處說明是為了避免以後看到這樣的**不知所措。

typedef struct與struct的區別

1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。至於ty...

typedef struct與strcut的區別

在windows下用vc作為開發工具的程式設計師,常可以在標頭檔案中看到如下這樣的定義 typedef struct tag 按照字面的意思理解,上面的 段定義了乙個結構體tag 同時還指明了 型別為strcut tag 直接把定義改為下面這樣的 不是更好嗎?strcut 為什麼要多此一舉的用typ...

typedef struct用法詳解

例子 typedef struct tagnode pnode 正文 1.基本解釋 typedef為c語言的關鍵字,作用是為一種資料型別定義乙個新名字。這裡的資料型別包括內部資料型別 int,char等 和自定義的資料型別 struct等 在程式設計中使用typedef目的一般有兩個,乙個是給變數乙...