读书人

关键字:typedef 函数部类 区别

发布时间: 2012-07-29 15:26:14 作者: rapoo

关键字:typedef 函数类型 区别
typedef void (*FuncTypePtr)(int);
typedef void FuncType(int);

FuncTypePtr func1;
FuncType *func2;

关于自定义函数类型的这两种typedef,各有什么优缺点?

[解决办法]
没有优缺点。。。

效果都是一样的。
[解决办法]

探讨
没有优缺点。。。

效果都是一样的。

[解决办法]
typedef 使你的代码更容易被其他程序员看懂
[解决办法]
两者的抽象层次不同。

第一种比第二种具有更高的抽象层次。第一种的使用者不需要知道该物件的实现,但第二种的使用者必须时刻留意定义为一个指针,所以,第一种比第二种具有更好的松散耦合度,一般而言(非绝对),第一种比第二种更好,特别是对于ADT。
[解决办法]
第二种,很奇怪的语法,很容易造成误解,而且不太符合规范
[解决办法]
楼上。。请不要乱说啊。。误导新人,怎么就不符合规范了。。都符合规范的好吧。

typedef int FunctionPrototype();

FunctionPrototype f, g;

int f() {
return 1;
}

int g() {
return 2;
}


-----------

关于楼主的问题,一般可以这样用

typedef void FuncType(int);
typedef Functype * FuncTypePtr;

然后你想怎么用就怎么用。

我个人不太喜欢Ptr的typedef。原因很简单,

IntPtr a;
IntPtr b;

我总觉得怪怪的,我喜欢

int *a;
int *b;

更直白一点。

读书人网 >C语言

热点推荐