完成noob到C
,刚刚开始有些蠢蠢欲动,想知道如何(读取“if”)以下是可能的。函数指针和指针参数在C
尝试创建一个struct
,其成员是一个函数指针,并且函数指针指向一个函数,该函数采用与上述struct
相同类型的参数。例如(介意的语法,刚开始熟悉这里):
typedef struct{
void (*myStructFunc)(void);
} MyStructType;
void myFunc(void){
printf("Hello world!");
}
// ...
MyStructType myStruct;
myStruct.myStructFunc = &myFunc;
myStruct.myStructFunc(); // <= Hello world!
这工作正常,但是当我尝试将MyStructType
类型的参数介绍的功能:
typedef struct{
void (*myStructFunc)(*MyStructType); // <= parse error
} MyStructType;
void myFunc(MyStructType *myStruct){
printf("Hello world!");
}
// ...
MyStructType myStruct;
myStruct.myStructFunc = &myFunc;
myStruct.myStructFunc(&myStruct);
这些例子由于显而易见的原因是简短的,但它们说明了我的意图。再次,只是让我的脚湿C
所以请原谅任何语法上的无知。
反正我怎么能做到这一点?很显然,我在语法上做了一些不正确的事情,或者我试图做一些明显不可能的事情。
另请注意,这是纯粹的学术原因。
P.S.玩得开心实施面向对象。 ;) – 2011-04-25 03:36:22