typedef的学习

typedef顾名思义,为“类型定义”,可以解释为:将一种数据类型定义为某一个标识符,在程序中使用该标识符来实现相应数据类型变量的定义。

 

功能:用自定义名字为已有数据类型命名。

类型定义简单形式:typedef type name;

typedef定义类型步骤

1.按定义变量方法先写出定义体,如 int i;

扫描二维码关注公众号,回复: 1334295 查看本文章

2.将变量名换成新类型名,如 int INTEGER;

3.最前面加typedef 如 typedef int INTEGER;

4.用新类型名定义变量,如 INTEGER i,j;

典型用法:

 定义结构体类型:

  

typedef struct {int x; int y;} Point;

需要说明的是,我们还可以使用下面的方法来定义结构体变量:

struct t_Point {

    int x; int y;};   // 注意,这里最后一个分号不能省略

 

int main(int argc, char* argv[])

{

    struct t_Point a, b;

    // . . .

    return 0;

}

显然,这种方法没有typedef更加直观(在C++中,main函数第一行的struct关键字可以省略,但在标准C中,省略该关键字会出现编译错误)。

此外,对于定义链接队列中的结点,我们可以这样实现:

typedef struct t_node {

    int Value;

    struct t_node *next;

} Node;

当然也可以这样定义:

typedef strcut t_node Node;

struct t_node {

    int Value;

    Node *next;

};

定义数组类型

typedef int MyIntArray [100];

那么程序中的

MyIntArray ia;

就相当于

int ia[100];

定义函数指针

typedef void (*FUNCADDR)(int)

此处FUNCADDR是指向这样一个函数的指针,该函数的返回值为void类型,函数有一个int型的参数。

例如:

void print (int x)

{

    printf (“%d\n”, x);

}

int main (int argc, char *argv[])

{

    FUNCADDR pFunc;

    pFunc = print;    // 将指针指向print函数

    (*pFunc)(25);     // 调用函数print

    return 0;

}

函数指针一般用于回调函数、中断处理过程的声明,以及在面向对象程序设计中对事件处理过程的声明。

定义类类型

typedef class {

    private:

       int a;

    public:

       int b;

} MyClass;

typedef 与 #define的区别 

    typedef int COUNT

     #define COUNT int

猜你喜欢

转载自1527zhaobin.iteye.com/blog/1585060
今日推荐