今天講解typedef
C 語言提供了 typedef 關鍵字,我們可以用它來建立資料類型别名
1、使用typedef簡化結構體關鍵字 (struct)
還記得有一次課堂作業曾經那個學生成績管理系統中
struct student
{
char name[10];
double yuwen;
double math;
double english;
double sum;
double average;
};
double y_average,m_average,e_average;
void s_average(struct student s[]);
void sum(struct student s[]);
void meike_average(struct student s[]);
void paixu(struct student s[]);
void paixu(struct student s[]);
int main()
{
struct student s[100];
int i,j;
/*省略以下所有代碼*/
}
很明顯上圖中每次調用時都需要使用struct student s[].???
這樣會顯得很麻煩,是以我們可以用typedef來簡化這個過程
第一種
struct student
{
char name[10];
double yuwen;
double math;
double english;
double sum;
double average;
};
typedef struct student s[1]={“略略略”,1,2,3,4,5};//低版本中不支援
是以在後面調用時可以直接使用s
函數體中也可以簡化為void s_average(s[]);
為了友善我們通常使用第二種
第二種
typedef struct student
{
char name[10];
double yuwen;
double math;
double english;
double sum;
double average;
}s;
是以可以用 s s[100];等價于struct student s[100];
2.關于資料類型的一些問題
有些時候我們想要規定兩個或者以上的int *類型
如果這樣 int *p1,p2 就是錯誤的,因為這個意思是P1屬于int *,p2為int
是以正确做法是int *p1,*p2;
這個時候typedef作用便來了
tyepe int * haogege ;
//這樣便可以直接
void p1()
{
long long x1;
long long x2;
}
當我們隻用 其他編譯器打開時候可能不支援long long類型這時候就會很麻煩
是以我們可以
typedef long long haogege;
void p2()
{
heogege x1;
haogege x2;
}
這樣當我們需要替換掉所有long long類型的時候
隻需要把typedef long long haogege中 long long改掉即可;