简单介绍typedef

    typedef为类型声明一个新的替代名字,而不是声明一个指定类型的对象;是其他类型的同义词,而不是度里的类型。使用typedef定义一个易于记忆的、有意义的类型名,能清晰表是程序原的意图,使程序代码易于理解。

定义有意义的类型名,使程序易于理解

  1. typedef int COUNT;
  2. COUNT i, j;

    这里将int类型定义为一个有意义的类型COUNT,当在程序中使用变量ij就可以一目了然地知道他们用于计数的,提高程序的可读性,是程序易于理解。


    typedef定义的类型名可以隐藏复合的类型,如

  1. typedef int array[100] ;

将含一百个int类型元素的数组定义为array,每次需要使用含100int类型元素的数组时,可以用下面的方法来定义:

  1. array arr;

    将数组类型隐藏了,并且不用每次在定义数组的时候都确定数组的大小,提高编码的效率。这种情况在需要相同类型相同大小的数组时才可以使用。

    另外,typedef还可以隐藏指针类型,我们也可以为指针类型定义一个有意义的、便于记忆的类型名,如:

  1. typedef char * ptr;
  2. typedef const char * cptr;

这样定义以后我们就可以用ptr去声明一个char 的变量,用cptr声明一个const char *类型的变量。

    typedef可以提高代码的可移植性。由于需要,我们可能会将程序放到另外的系统上运行,要是目标系统于当前使用的系统不一样的时候,程序可能不能正常工作。例如我们将pc己上的程序移植到嵌入式系统上,因为嵌入式系统的芯片限制,我们所使用的类型超过了表示范围。如果使用typedef,我们就可以很快的将程序修改了,如:

  1. typedef int int32;

可能在嵌入式系统中需要用long类型才能表示pc系统上的int类型的数据范围,于是我们只要修改int32的定义就可以了:

  1. typedef long int32;

这样只需要修改一行代码就可以解决问题了。

    总之,typedef都只是其他类型的同义词,不是独立的类型,它可以随意地为其他类型定义同义词——只要我们需要。

    可以通过结合struct、union、enum来获得独立的类型名。

  1.  typedef struct {
  2.      char *name;
  3.      int age;
  4.      char *address;
  5.  } student_t;
这样我们就获得了一个名为student_t的类型,可以直接在程序中使用student_t来定义变量了:
  1. student_t s = { "young", 20, "scrj" };


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值