typedef void (*fun)(void);
首先请看void (*fun)(void)
这里定义了一个函数指针fun,fun指向一个参数为void,返回值为void的函数。
接着再看typedef void (*fun)(void);
typedef 的作用是定义一种类型,例如想上面的那样定义的话,就定义了fun这种类型,而fun这种类型的约束条件就是,要指向一个参数为void,并且返回值为void的函数的类型。
不知道是不是我理解错了,要是理解有错,劳烦楼主把完整代码贴出来看看。
#include <stdio.h>
typedef void (*fun)( void ) ;
void Fun1( void )
{
printf ( "Fun1 Run\n" );
}
void Fun2( void )
{
printf ( "Fun2 Run\n" );
}
int main( )
{
fun p;
p=Fun1; //两者类型匹配。
p( ); //
p=Fun2;
( *p)( );//这两种p的表示方法是等价的
return 0;
}
追问
没有看错,就是typedef void fun(void)
追答
那楼主你把应用的完整代码贴出来看看咋样。
追问
typedef void fVoidVoid(void);
static fVoidVoid * _apfTest[] =
{
GUIDEMO_HardwareInfo,
GUIDEMO_Speed,
}
追答
typedef void fVoidVoid(void); static fVoidVoid * _apfTest[] = { GUIDEMO_HardwareInfo, GUIDEMO_Speed, } 等价于 typedef void (*fVoidVoid)(void); static fVoidVoid _apfTest[] = { GUIDEMO_HardwareInfo, GUIDEMO_Speed, }
typedef void fVoidVoid(void);
static fVoidVoid * _apfTest[] =
{
GUIDEMO_HardwareInfo,
GUIDEMO_Speed,
}
等价于
typedef void (*fVoidVoid)(void);
static fVoidVoid _apfTest[] =
{
GUIDEMO_HardwareInfo,
GUIDEMO_Speed,
}