函数指针类型定义

时间:2017-11-12 00:01:04

标签: c function pointers

以下两种类型定义有什么区别?

1. typedef char * (*fnptr)( void );
2. typedef char * fnptr( void ); 

一个是指向函数的指针的类型,另一个是函数的类型。对于名为fn_name的函数,fn_name和& fn_name都是指向函数的指针(第一条指令的地址)。这是对的吗?

使用2我可以在我的代码中替换以下行:

char *getsome( void );

由:

fnptr getsome;

以上述方式使用1会导致程序崩溃。如果我使用1,那么我必须定义一个类型为fnptr的变量g并将其设置为等于getsome以使程序再次运行。

0 个答案:

没有答案