關鍵字:typedef
簡單地用一個新的型別名代替原有的型別名
作用:
1、不同名稱代表在幹不同的事情typedef int jint;;
2、不同情況下,使用不同的別名
if defined(__cplusplus) //c++
typedef _JNIEnv JNIEnv;
typedef _JavaVM JavaVM;
3.書寫簡潔
struct Student{
char name[20];
int age;
};
//Age int型別的別名
typedef int Age;
//Age int型別指標的別名
typedef int* Ap;
//結構體取別名
typedef struct Student m_s;
typedef struct Student* p_s;
複製程式碼
簡寫
typedef struct Student{
char name[20];
int age;
}m_s,*p_s;
複製程式碼
typedef struct Student{
char name[20];
int age;
}MS,*PS;
//Age int型別的別名
typedef int Age;
//Age int型別指標的別名
typedef int* Ap;
////結構體取別名
//typedef struct Student MS;
//typedef struct Student* PS;
void main(){
Age a = 15;
Ap p = &a;
//結構體變數
MS s1 = { "xiaoming", 20 };
//結構體指標
PS ps = &s1;
printf("name:%s age:%d\n", s1.name, s1.age);
printf("name:%s age:%d\n", ps->name, ps->age);
getchar();
}
複製程式碼
說明:
1、以上的方法實際上是為特定的型別指定了一個同義字 ;
2、用typedef只是對已經存在的型別指定一個新的型別名,而沒有創造新的型別;
3、用typedef宣告陣列型別、指標型別,結構體型別、共用體型別、列舉型別等,使得程式設計更加方便;
4、typedef與#define表面上有相似之處, 但仍有本質區別:
5、當不同原始檔中用到同一型別資料時,常用typedef宣告一些資料型別。可以把所有的typedef名稱宣告單獨放在一個標頭檔案中,然後在需要用到它們的檔案中用#include指令把它們包含到檔案中。這樣程式設計者就不需要在各檔案中自己定義typefef名稱了。
6、使用typedef名稱有利於程式的通用與移植。有時程式會依賴於硬體特性,用typedef型別就便於移植。