虚空境界分享 http://blog.sciencenet.cn/u/depengchen 摄心神,致虚极,守静笃

博文

在C++中用typedef 声明新类型

已有 3651 次阅读 2015-1-7 16:39 |个人分类:程序设计|系统分类:科研笔记

在C++中,有时因为编程习惯的需要,有时为了程序的可移植性,需要用typedef声明一个新的类型名来代替已有的类型,如:
   typedef int INTEGER;  //指定用标识符INTEGER代表int类型   等价于:nt i,j; float a,b;
   typedef float REAL;  //指定用REAL代表float类型  等价于:INTEGER i,j; REAL a,b;
   这使熟悉FORTRAN编程风格的人能用INTEGER和REAL定义变量,以适应他们熟悉的风格何编程习惯。
   

   如在程序中,整型变量专门用来计数的,可以用COUNT来作为整型类型名:
   typedef int COUNT;  //指定用COUNT代表int型
   COUNT i,j;  //将变量i,j定义为COUNT类型
   即int类型在程序中将变量i, j定义为COUNT类型,可以使人更一目了然地知道它们是用于计数的。

也可以声明结构体类型:

  1. typedefstruct//注意在struct之前用了关键字typedef,表示是声明新名

  2. {

  3. int month;int day;int year;

  4. }DATE;//注意DATE是新类型名,而不是结构体变量名

所声明的新类型名DATE代表上面指定的一个结构体类型。这样就可以用DATE定义变量:
   DATE birthday; DATE *p;  //p为指向此结构体类型数据的指针
还可以进一步:
  • typedef int NUM[100];  //声明NUM为整型数组类型,包含100个元素
    NUM n;  //定义n为包含100个整型元素的数组

  • typedef char *STRING;  //声明STRING为字符指针类型
    STRING p,s[10];  //p为字符指针变量,s为指针数组(有10个元素)

  • typedef int (*POINTER)( )  //声明POINTER为指向函数的指针类型,函数返回整型值
    POINTER p1, p2;  // p1,p2为POINTER类型的指针变量

总结一下,声明一个新的类型名的方法是:
  1. 先按定义变量的方法写出定义语句(如int i;)。

  2. 将变量名换成新类型名(如将i换成COUNT)。

  3. 在最前面加typedef(如typedef int COUNT)。

  4. 然后可以用新类型名去定义变量。

以数组类型为例来示例以上流程:
  1. 先按定义数组形式书写: int n[100];

  2. 将变量名n换成自己指定的类型名:int NUM[100];

  3. 在前面加上typedef,得到 typedef int NUM[100];

  4. 用来定义变量: NUM n;(n是包含100个整型元素的数组)。

习惯上常把用typedef声明的类型名用大写字母表示,以便与系统提供的标准类型标识符相区别。

关于typedef的几点说明:
  1. typedef可以声明各种类型名,但不能用来定义变量。用typedef可以声明数组类型、字符串类型,使用比较方便。

  2. 用typedef只是对已经存在的类型增加一个类型名,而没有创造新的类型。

  3. 当在不同源文件中用到同一类型数据(尤其是像数组、指针、结构体、共用体等类型数据)时,常用typedef声明一些数据类型,把它们单独放在一个头文件中,然后在需要用到它们的文件中用#include命令把它们包含进来,以提高编程效率。

  4. 使用typedef有利于程序的通用与移植。有时程序会依赖于硬件特性,用typedef便于移植。

注:参考了网上的文章。



https://blog.sciencenet.cn/blog-338872-857285.html

上一篇:VIM分屏操作
下一篇:rhel 7.0 系统,如果忘记了root用户密码
收藏 IP: 175.8.20.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 14:27

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部