打印
[软件资料]

使用typedef的优势

[复制链接]
40|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
forgot|  楼主 | 2025-2-24 14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
可以让代码更加清晰简洁使用typedef,我们可以在定义一个结构体、联合、枚举变量时,省去关键字struct,让代码更加简洁。
typedef struct student
{
  char name[20];
  int  age;
  float score;
}student_t, *student_ptr;

student_t   stu = {"wit", 20, 99};
student_t  *p1 = &stu;
student_ptr p2 = &stu;


使用特权

评论回复
沙发
forgot|  楼主 | 2025-2-24 14:14 | 只看该作者
增加代码的可移植性
C语言的int类型,我们知道,在不同的编译器和平台下,所分配的存储字长不一样:可能是2个字节,可能是4个字节,也有可能是8个字节。如果我们在代码中想定义一个固定长度的数据类型,此时使用int,在不同的平台环境下运行可能会出现问题。
#ifdef PIC_16
typedef  unsigned long U32
#else
typedef unsigned int U32  
#endif


使用特权

评论回复
板凳
forgot|  楼主 | 2025-2-24 14:14 | 只看该作者
比宏定义更好用
C语言的预处理指令#define用来定义一个宏,而typedef则用来声明一种类型的别名。typedef跟宏相比,不仅仅是简单的字符串替换,可以使用该类型同时定义多个同类型对象。
typedef char* PCHAR1;
#define PCHAR2 char *

int main (void)
{
  PCHAR1 pch1, pch2;
  PCHAR2 pch3, pch4;
  printf ("sizeof pch1: %d\n", sizeof(pch1));
  printf ("sizeof pch2: %d\n", sizeof(pch2));
  printf ("sizeof pch3: %d\n", sizeof(pch3));
  printf ("sizeof pch4: %d\n", sizeof(pch4));
  return 0;
}


使用特权

评论回复
地板
forgot|  楼主 | 2025-2-24 14:15 | 只看该作者
让复杂的指针声明更加简洁
一些复杂的指针声明,如:函数指针、数组指针、指针数组的声明,往往很复杂,可读性差
typedef int *(*func_ptr_t)(int *p, int len, char name[]);
func_ptr_t array[10];


使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1859

主题

13685

帖子

56

粉丝