如下typedef struct StateStruct {void (*FuncPtr)( void * ptr );}SS;这里void (*FuncPtr)和( void * ptr )这两个指针有什么关系吗,谁能帮我详细解释一下这个结构体的定义,谢谢 阿!
3 回答
守候你守候我
TA贡献1802条经验 获得超10个赞
1234567 | typedef struct StateStruct { void (*FuncPtr)( void * ptr ) f; }SS; //定义了一个新的类型,这个类型是个结构体,类型名是SS //下面声明一个SS类型的变量 SS s; //s就是一个SS类型的变量 |
1234567 | void (*FuncPtr)( void * ptr ); //是一个类型名,类型是FuncPtr,这是一个函数指针类型,这个函数指针类型是返回值是void,接受一个void*的指针地址的参数。 //一般使用typedef语法来用 typedef void (*FuncPtr)( void * ptr ); typedef struct StateStruct { FuncPtr fp; }SS; |
承上
123456 | void f( void *ptr) { } //函数f就是一个funcPtr类型的函数。 //可以以下面的方法赋值: s.fp = f; |
1234 | const SS St_StateInit = { ( void (*)( void *))State_Init }; //用下面的写法会好看很多 const SS St_StateInit = { (FuncPtr)State_Init }; //这是用State_Init来初始化fp的值。 |
- 3 回答
- 0 关注
- 663 浏览
添加回答
举报
0/150
提交
取消