功能:用自定义名字为已有数据类型命名
注意:
1 用typedef只是对已经存在的类型指定一个新的类型名,而没有创造新的类型
2当不同源文件中用到同一类型数据时,常用typedef声明一些数据类型。可以把所有的typedef名称声明单独放在一个头文件中,然后在需要用到它们的文件中用#include指令把它们包含到文件中。这样编程者就不需要在各文件中自己定义typefef名称了
1 typedef int 整数;//别名 2 typedef float 实数;//typedef没有创建数据类型 只是起一个别名 3 4 //typedef num1 整数1; typedef 仅仅使用与类型 5 //#define 整数1 num1define 就是替换使用与任何场合而typedef只有类型 6 7 void main1() 8 { 9 整数 num1 = 10; 10 实数 fll = 10.6; 11 printf("%d",num1); 12 printf(" %f",fll); 13 14 getchar(); 15 }
1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <string.h> 4 5 void main2() 6 { 7 /*int a[100]; 8 int s[100];*/ 9 typedef int s[100]; 10 s x;//等价为int x[100]; 11 int i; 12 for(i=0;i<100;i++) 13 { 14 x[i] = i; 15 printf("%d ",x[i]); 16 } 17 getchar(); 18 } 19 20 void mian3() 21 { 22 /*char *str; 23 char *STR;*/ 24 25 /*typedef char *STR; 26 STR s1 = "dfdfd"; 27 printf(" %s",s1);*/ 28 29 30 } 31 32 void go() 33 { 34 system("calc"); 35 } 36 void main4() 37 { 38 //void(*p)();//函数指针 39 //void (*go)(); 40 typedef void(*go)(); 41 go go1;//简化的函数指针进行的调用 42 go1(); 43 44 system("pause"); 45 } 46 47 typedef struct info 48 { 49 char name[100]; 50 int num; 51 }INFO; 52 typedef INFO *p; 53 void main() 54 { 55 p p1;//结构体类型指针 56 //等价为 struct info info1={"df",45} 57 INFO info1 = {"df",45}; 58 printf("%s,%d",info1.name,info1.num); 59 p1 = (p)malloc(sizeof(INFO)); 60 p1->num = 100; 61 strcpy(p1->name,"dfd"); 62 printf("%s,%d",p1->name,p1->num); 63 getchar(); 64 }