天天看點

關于typedef的一些常用點

今天講解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改掉即可;      

繼續閱讀