C語言結構體定義 typedef struct

2021-09-27 09:26:45 字數 2245 閱讀 6319

c語言規範,定義結構體:

typedef  struct answer_header           

answer_header_t, *panswer_header_t;

answer_header為結構名,這個名字主要是為了在結構體中包含自己為成員變數的時候有用

answer_header_t為struct answer_header的別名

panswer_header_t為struct answer_header*的別名

上面的定義方式等價於

struct answer_header

;typedef struct answer_header answer_header_t;

typedef struct answer_header *panswer_header_t;

結構的定義:

定義乙個結構的一般形式為:

struct 結構名

;成員列表的形式為:

型別說明符 成員名;

例如 :

struct stu

;宣告結構變數的三種方法:

1.先定義結構型別,再宣告:

struct stu

;struct stu boy1, boy2;

也可以用巨集定義使乙個符號常量來表示

乙個結構型別。

例如:#define stu struct stu

stu;

stu boy1, boy2;

在定義結構型別的同時說明結構變數

例如:struct stu

boy1, boy2;

這種形式的說明的一般形式為:

struct 結構名

變數名表列;

直接說明結構變數。

例如:struct

boy1, boy2;

這種形式的說明的一般形式為:

struct

變數名表列;

結構指標變數說明的一般形式為:

struct 結構名 *結構指標變數名

例如:struct stu *pstu;

當然也可在定義 stu 結構時同時說明 pstu。

例如:struct stu

boy1, boy2, *pstu;

下面是譚浩強老師c語言書中typedef一節:

型別定義符typedef

c語言不僅提供了豐富的資料型別,而且還允許由使用者自己定義型別說明符,也就是說

允許由使用者為資料型別取「別名」。型別定義符 typedef 即可用來完成此功能。例如,有整

型量 a,b,其說明如下:

int a,b;
其中 int 是整型變數的型別說明符。int 的完整寫法為 integer,為了增加程式的可讀性,

可把整型說明符用 typedef 定義為:

typedef int integer

這以後就可用 integer 來代替 int 作整型變數的型別說明了。

例如:

integer a,b;
它等效於:

int a,b;
用 typedef 定義陣列、指標、結構等型別將帶來很大的方便,不僅使程式書寫簡單而且

使意義更為明確,因而增強了可讀性。

例如:

typedef char name[20];    表示 name 是字元陣列型別,陣列長度為 20。然後可
用 name 說明變數,如:

name a1,a2,s1,s2;
完全等效於:

char a1[20],a2[20],s1[20],s2[20]
又如:

typedef struct stu

char name[20]; 

int age;

char ***;

} stu;

定義 stu 表示 stu 的結構型別,然後可用 stu 來說明結構變數:

stu body1,body2;

typedef 定義的一般形式為:

typedef 原型別名 新型別名

其中原型別名中含有定義部分,新型別名一般用大寫表示,以便於區別。

有時也可用巨集定義來代替 typedef 的功能,但是巨集定義是由預處理完成的,而 typedef

則是在編譯時完成的,後者更為靈活方便。

C語言之typedef和結構體

今天看到乙個結構體,一直沒看明白,網上查了一些關於typedef的資料,這才終於弄明白。typedef struct fbdev fbdev,pfbdev 之前一直看不明白fbdev和 pfbdev是什麼。不過分開看的話,就非常清楚了。上面的 其實可以看成兩段,即上面的逗號的作用。typedef s...

資料結構(結構體定義,typedef)

時間2014 03 24 00 22 39 csdn部落格 原文 看了郝斌老師的資料結構,很有感觸,所以就想寫乙個系列關於資料結構的文章 不論你是出於單純學習資料結構,還是出於為考研資料結構的初試以及複試做準備的目的,我相信你都可以從本系列博文中獲益。環境 windows xp x86 vc 6.0...

C語言結構體定義

c語言結構體定義在我看來類似資料庫的表 如 include include struct st1 int id char name 30 char int score int main struct st1 s1 s1.id 1 strcpy s1.name,張三 s1.m s1.score 90 ...