typedef的一些用法

今天看到一个typedef定义函数的语句,不甚了解,便查看了一些资料。
1、用typedef定义一个类型的别名

typedef char * pchar;

那么,pchar可以说和char *是同一类型

2、C语言中用typedef定义结构体。这个应该都比较容易理解

3、用typedef自定义函数指针

#include <stdio.h>
typedef void(*funcPoint)(int i); //定义函数指针
//这个函数指针指向的函数为:参数为int,返回值为void

//定义两个函数
void func1(int i)
{
    printf("func1: i = %d\n", i);
}

void func2(int i)
{
    printf("func2: i = %d\n", i);
}

int main()
{
    funcPoint fp; 
    fp = func1;
    fp(5);
    fp = func2;
    fp(7);

    return 0;
}
//输出
//func1: i = 5
//func2 : i = 7

4、struct函数中的typedef

struct Test
{
    typedef ClassType type;
    ClassType a;
    int b;
}
Test t;

我们无法知道t.a的类型,但是我要用x=t.a.那么我怎么确定x的类型呢?当然是:

Test::type x = t.a; 

这种在struct中使用typedef在STL中有很多,对于理解STL源码也是很有帮助的。

你可能感兴趣的:(C语言,typedef)