共用體
用typedef定義型別
1、用typedef宣告新的型別名來代替已有的型別名。
例:宣告INTEGER為整型
#include "StdAfx.h" #include<stdio.h> #include<stdlib.h> typedef int INTEGER; void main() { INTEGER i=1; int j=2; printf("%d%d\n\n",i,j); }
2、宣告結構型別
例:
#include "StdAfx.h" #include<stdio.h> #include<stdlib.h> typedef struct{int month;int day;int year;}DATE; void main() { DATE date_one; date_one.month=3; date_one.day=24; date_one.year=2000; printf("%d-%d-%d\n",date_one.year,date_one.month,date_one.day); }
3、宣告NUM為整型
#include "StdAfx.h" #include<stdio.h> #include<stdlib.h> typedef int NUM[100]; void main() { NUM num; printf("%d\n\n",sizeof(num)); }
4、宣告p為字元指標型別
#include "StdAfx.h" #include<stdio.h> #include<stdlib.h> typedef char *P; void main() { P p1; p1="Lv"; printf("%s",p1); }
5、宣告P為指向函式的指標型別,該函式返回整型值。
#include "StdAfx.h" #include<stdio.h> #include<stdlib.h> typedefvoid(*P)(); void fun(); void main() { P p1; p1 = fun; (p1)(); } void fun() { printf("lv"); }
注:對陣列而言,陣列名就是它的地址,它的地址就是它本身。
說明:(1)用typedef可以宣告各種型別名,但不能用來定義變數。
(2)用typedef只是對已經存在的型別增加一個型別名,而沒有創造新的型別。
(3)當不同原始檔中用到同一型別的資料時,常用typedef宣告一些資料型別,把它們單獨的放在一個檔案中,然後再需要用到的檔案中用#include命令把他們包含進來。
(4)使用typedef有利於程式的通用與移植。
(5)typedef與#define有相似之處,但二者是不同的。
區別:#define只是簡單的代換,而typedef是如同定義變數一樣宣告一個型別。