typedef
typedef的用法实例
定义整形的类型
typedef int x//声明一个名为x的int类型
定义struct类型
typedef struct{
int x;
} s; //声明一个名为s的struct类型
定义指针
typedef int* p; //声明定义一个指针类型p,指向int变量
定义数组类型
typedef int A[]; //声明一个名为A的数组类型,数组的元素类型为int
定义函数类型
typedef int f(); //声明一个名为f的函数类型,该类型的参数为空,返回类型为int
typedef int g(int); //声明一个名为g的函数类型,该类型有一个int的输入,返回类型为int
/*以上调用函数的实例*/
typedef int P();
typedef int Q();
class a{
static P(Q); //声明一个P类型的函数Q(),相当于P Q,即在这个类里面现在定义的Q是一个P类型的函数了
static Q(P); //前面已经声明了Q是一个函数,这里的声明就是声明了Q是一个成员函数,输入的参数是P类型的函数返回的东西
}
这种函数类型的声明在简单函数的情况下意义不大, 但是如果要声明很多比较复杂且返回值类型和参数表的参数类型都相同的,且参数表有很多参数的函数,就可以少打很多代码,比如:
typedef int f(); //简单情形
f(g()); //声明一个f类型的函数g()
f g; //跟上面的相同
int g(); //实际上用起来跟上面的typedef和f g()两句合起来效果相同,因此还不如直接写int g()
typedef void f(int *p, const std::string& s1, const std::string& s2, const std::string& s3);
f g; //这时候就可以少打很多字,就直接声明了g函数