完成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