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 則無法保證。