博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

黑与白的世界

如果人们按照程序员编程的方式修建房屋,那么一只啄木鸟就能毁灭整个文明
dongj.cublog.cn


typedef的简单使用
   typedef为现有类型创建一个新的名字。比如人们常常使用 typedef 来编写更美观和可读的代码。所谓美观,意指 typedef 能隐藏笨拙的语法构造以及平台相关的数据类型,从而增强可移植性和以及未来的可维护性。

   例如:typedef int DataType;

  此声明定义了一个 int 的同义字,名字为 DataType。注意 typedef 并不创建新的类型。它仅仅为现有类型添加一个同义字。你可以在任何需要 int 的上下文中使用 DataType.

 
1、typedef在数组中的应用
 

/* N1到N4是几个常量,以枚举的形式定义 */
enum {N1 = 2, N2 = 3, N3 = 4, N4 = 5};

/* 将DataType定义为int型,便于扩充 */
typedef int DataType;

/* 定义一个一维数组,数组的元素维整型值 */
typedef DataType ARR1[N4];

/* 再定义一个一维数组,数组的元素维ARR1型,不过ARR1又是一个数组,所以ARR2 实际上是一个矩阵*/
typedef ARR1 ARR2[N3]; /* 此处完全等价为typedef int ARR2[N3][N4];*/

 /* 按照ARR2的解释,ARR3也是一个一维数组,不过数组元素的类型是ARR2的类型所有ARR3是一个三维数组*/
typedef ARR2 ARR3[N2]; /* 此处完全等价为typedef int ARR3[N2][N3][N4];*/

/* 分别用定义好的ARR1,ARR2,ARR3定义三个变量a, b, c */
ARR1 a; /* 此处完全等价于:int a[N4]; */
ARR2 b; /* 此处完全等价于:int b[N3][N4]; */
ARR3 c; /* 此处完全等价于:int c[N2][N3][N4]; */

 

2、typedef在结构中的应用

#include <iostream>
using namespace std;
/* 定义了一个名为point的结构体,而newpoint是它的一个别名 */
typedef struct /*point*/ {
    double x, y;
}newpoint;

int main() {
    
//point point1 = {100, 200};
    newpoint point2 = {500, 1000};
    
//cout<<point1.x<<" "<<point1.y<<endl;
    cout<<point2.x<<" "<<point2.y<<endl;
    return 0;
}

 

3、typedef在函数指针中的应用

/* 定义了一个名为Fun的函数指针,其函数类型为int (*)(int, int) */
typedef int (*Fun)(int, int);
Fun func;
//等价于int (*func)(int, int);

//===============================================

/* 上述代码也可以这样定义 */
typedef int Fun(int, int);
Fun* func;

 TAG typedef
发表于: 2008-03-27 ,修改于: 2008-03-27 19:25,已浏览237次,有评论0条 推荐 投诉


网友评论

发表评论