2 回答

TA貢獻1836條經(jīng)驗 獲得超3個贊
說說我的理解,因為前幾天老是看頭文件,這個在頭文件里出現(xiàn)的次數(shù)相當(dāng)多。
typedef的基本作用就是給一個數(shù)據(jù)類型一個名字,可以用這個名字去定義這樣的數(shù)據(jù)類型。
比如 typedef uint unsigned int 就是用uint來表示無符號整數(shù)unsigned int,這樣的用法在單片機程序里相當(dāng)?shù)湫?。這樣可以簡化書寫,另外如果封裝庫文件的話,就可以隱藏數(shù)據(jù)類型。在比如定義一個結(jié)構(gòu) typedef Student struct { char name[10]; int Number;}Student;這樣就可以用Student boy1;這樣看起來只是簡化了書寫,和讓定義看起來明確一些。可是當(dāng)你想用一個結(jié)構(gòu)里面還有結(jié)構(gòu)型數(shù)據(jù)的話,比如已經(jīng)定義了Student那么在定義一個Teacher :typedef Teacher struct { char name[10]; int Number;}Teacher;
那么就可以使用新的結(jié)構(gòu):struct { Student student; Teacher teacher;} Class;這樣你看班級Class里就定義了學(xué)生和老師,而且使結(jié)構(gòu)很清晰,很容易理解。
至于第三條,最常用就是int的定義了,比如我定義寬和高都是整數(shù),typedef Width int;typedef Heigth int;
這樣Width a;Heigth b;你一看就知道a,b是干什么的了,都是整型數(shù),但是這么定義一下,你就很明白的知道使用整型數(shù)的目的了。

TA貢獻1873條經(jīng)驗 獲得超9個贊
AdjMatrix 定義了的是一個二維數(shù)組:如 AdjMatrix a; ====== int a[MAX_ VERTEX _ NUM][MAX_ VERTEX _ NUM]
而用AdjMatrix[MAX_ VERTEX _ NUM][MAX _ VERTEX _ NUM]去定義時會報錯,所以只能用AdjMatrix
去定義,而且定義后的是一個二維數(shù)組,很特殊,呵呵,這個我以前都不知道
- 2 回答
- 0 關(guān)注
- 137 瀏覽
添加回答
舉報