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函数
全部评论

相关推荐

11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
offer多多的六边形战士很无语:看了你的博客,感觉挺不错的,可以把你的访问量和粉丝数在简历里提一下,闪光点(仅个人意见)
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务