简单介绍typedef

原创 2008年09月30日 11:47:00

    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" };


版权声明:本文为博主原创文章,未经博主允许不得转载。

Java简单介绍

Java的三个版本:        Java SE:标准版,各应用平台的基础        Java EE:企业版,以企业为环境而开发应用程序的解决方案        Java ME:微型版,致力于消...
  • elibrace
  • elibrace
  • 2016年01月27日 08:42
  • 2179

JVM简单介绍

JVM模型结构 图: 程序计数器(PC): 当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。 场景:分支、循环、跳转、异常处理、线...
  • chun16free
  • chun16free
  • 2016年04月15日 14:07
  • 338

简单介绍 dubbo

Dubbo是一个开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合;从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消...
  • u014266877
  • u014266877
  • 2017年01月19日 09:45
  • 299

#define的用法及与typedef的区别

C++中#define的用法 1、define--(无参数宏定义)用法     一般形式为:#define     标识符 字符串     (1)"#"表示其为预处理命令,凡是以"#"开头...
  • FOR_PEACE
  • FOR_PEACE
  • 2017年02月23日 20:36
  • 145

Spring学习笔记一(Spring简单介绍)

1.前言 从今天起开始写几篇关于Spring的文章,来总结一下,近来的学习情况,也想与大家分享一下学习Spring的心得和体会。希望大家能够多多指正。  2.Spring简单介绍 上...
  • ZHOUCHAOQIANG
  • ZHOUCHAOQIANG
  • 2015年08月09日 22:00
  • 1525

mybatis----简单介绍和使用

进公司后,公司用的Mysql数据库,持久层用的就是Mybatis,开始感觉没有接触过,应该挺难,可是现在看来全是自己吓自己,下面让我来简单介绍一下: MyBatis是一个基于java的持久层框架  ...
  • u013045959
  • u013045959
  • 2016年09月16日 14:11
  • 1471

Spring MVC简单介绍

对SpringMVC框架介绍    The Spring Web model-view-controller (MVC) framework的设计是围绕一个分发期,将请求处理程序,可配置的处...
  • jiang_qing_kai
  • jiang_qing_kai
  • 2015年01月18日 18:58
  • 1059

Shiro 简单介绍

Apache Shiro 是一个强大易用的 Java 安全框架,提供了认证、授权、加密和会话管理等功能,对于任何一个应用程序,Shiro 都可以提供全面的安全管理服务。并且相对于其他安全框架,Shir...
  • qwssd
  • qwssd
  • 2017年08月22日 21:14
  • 111

P2P的简单介绍

发信人: steadystream (后来), 信区: P2P标  题: P2P的简单介绍发信站: 瀚海星云 (2005年03月29日18:46:39 星期二), 站内信件P2P是 "peer-t...
  • kevinye
  • kevinye
  • 2006年08月18日 13:45
  • 1165

nginx简单介绍

关于网站性能问题,那就到了 NGINX 和 NGINX Plus 发挥作用的时候。一般可以通过以下三种方式改善网站性能:   作 web 服务器,NGINX 最开始的设计初衷就是解决 C10K ...
  • laomoluhaitao
  • laomoluhaitao
  • 2016年08月27日 07:08
  • 208
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:简单介绍typedef
举报原因:
原因补充:

(最多只允许输入30个字)