利用 struct 定義一個 interface 出來
之後讓不同的實體各自去實做
例:
#include
struct Callback_Interface {
char *name;
int (* myCal) (int numA, int numB);
};
int myCalculateA(int a, int b) {
return a + b;
}
int myCalculateB(int a, int b) {
return a * b;
}
struct Callback_Interface callback_implementA = {
"implementA",
myCalculateA,
};
struct Callback_Interface callback_implementB = {
"implementB",
myCalculateB,
};
int main() {
printf("name=%s\n", callback_implementA.name);
printf("myCal=%d\n", callback_implementA.myCal(1, 2));
printf("\n");
printf("name=%s\n", callback_implementB.name);
printf("myCal=%d\n", callback_implementB.myCal(1, 2));
return 0;
}
ps. struct 可以有不一樣的 initialization
Wiki C structure
但是 visual studio C compiler 不支援
問題+解答
- Feb 03 Fri 2012 11:08
[C/C++] Define Interface by Using Callback Function
close
全站熱搜
留言列表
禁止留言