C語言學習筆記 - typedef

Typedef

聲明與定義

C語言提供了typedef關鍵字,可以使用它爲類型取一個新名字。

typeof unsigned char byte;
byte b1, b2;

也可以使用typedef爲自定義數據類型取一個新名字。

#include <stdio.h>
#include <string.h>

typedef struct Students
{
   char  name[50];
   char  gender[10];
   int   age;
} Student;

int main( ) {
   Student student;     

   strcpy( student.name, "張三");
   strcpy( student.gender, "男"); 
   student.age = 15;

   printf( "Student name : %s\n", student.name);
   printf( "Student gender : %s\n", student.gender);
   printf( "Student age : %d\n", student.age);

   return 0;
}

typedef 與 #define 的區別

#define是C指令,用於爲各種數據類型定義別名,與typedef類似。它們也有以下不同點:

  • typedef 是由編譯器執行解釋的,#define 語句是由預編譯器進行處理的。
  • typedef 僅限於爲類型定義符號名稱,#define 不僅可以爲類型定義別名,也能爲數值定義別名。例如:將1定義爲ONE
  • #define可以使用其他類型說明符對宏類型名進行擴展,但對 typedef 所定義的類型名卻不能這樣做。
  • 在連續定義幾個變量的時候,typedef 能夠保證定義的所有變量均爲同一類型,而 #define 則無法保證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章