typedef 的详细用法

来源:互联网 发布:歼31 知乎 编辑:程序博客网 时间:2024/05/22 15:52
typedef :自定义一种数据类型
用法1:
代码:
定义一个基本的数据类型;
#include <stdio.h>typedef char BYTE;//定义一个数据类型 BYTE ,BYTE 跟char 类型一样int main(){BYTE c = 'c';putc(c,stdout); //打印出char类型creturn 0;}
用法2:
定义一个指针类型:
代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef char *CHARP; //定义一个char类型指针类型CHARP stradd(CHARP s1, CHARP s2){strcat(s1, s2);return s1;}int main(){char c = 'a';CHARP p = &c; //定义一个CHARP 类型指针 printf("p = %p\n", p);//结果:p = 00B5F8D7CHARP p1,p2; //定义两个指向 typedef的 CHARP类型 指针变量char s1[100] = "hello";char s2[100] = "world";p1 = s1;p2 = s2;CHARP s3= stradd(p1, p2);printf("s3 = %s\n", s3);//结果:helloworldreturn 0;}

用法3:
定义一个数组类型:
代码:
#include <stdio.h>typedef char BYTE[]  ; //定义一个字符串类型int main(){char c = 'a';BYTE s  = "helloworld";printf("s = %s\n", s);//结果:s = helloworldreturn 0;}

用法4:
定义一个结构体数据类型:
代码:
#include <stdio.h>typedef struct{int a;} A;  // 定义一个结构体类型的数据类型int main(){A a ;定义结构A变量aa.a= 10;printf("%d",a.a); // 结果:10}

用法5:
定义一个指向 返回类型为char类型指针、参数为两个char类型指针函数的指针的类型
代码:
#include <stdio.h>#include <string.h>#include <stdlib.h>typedef char *(*STRADD)(char *,char *); //定义一个指向 返回类型为char类型指针、参数为两个char类型指针函数的指针的类型 (本例中的stradd函数)STRADD get_stradd() //定义一个返回类型的STRADD 类型的函数{return stradd;}//定义一个返回类型为char类型指针、参数为两个char类型指针的函数char *stradd(char *s1, char *s2){strcat(s1, s2);return s1;}// 定义一个参数类型有函数的的指针char *test(STRADD p, char *s1, char *s2){return p(s1, s2);}int main(){char s1[100] = "hello";char s2[100] = "world";char *s3= test(stradd,s1, s2);//测试test 函数,结果:s3 = helloworldprintf("s3 = %s\n", s3);STRADD array[10]; //定义一个函数数组return 0;}

typedef 对定义复杂的数据类型有着不可替代的作用,多用!!!




原创粉丝点击