|
|

楼主 |
发表于 2006-4-17 10:02:52
|
显示全部楼层
- #include <stdio.h>
- typedef void (*funPointer)(void);
- typedef struct {
- funPointer Left;
- funPointer Right;
- }key_Handler;
- key_Handler Handler;
- void DemoHandler(funPointer);
- void Left(void);
- void Right(void);
- int main(void)
- {
- Handler.Left = Left; //或&Left,结果都一样的
- DemoHandler(Handler.Left);
- Handler.Right = Right; //或&Right,结果都一样的
- DemoHandler(Handler.Right);
- exit(0);
- }
- void DemoHandler(funPointer fP)
- {
- fP();
- }
- void Left(void)
- {
- fprintf(stdout, "%s\n", "<-");
- }
- void Right(void)
- {
- fprintf(stdout, "%s\n", "->");
- }
- "callback.c" 39L, 544C written
- [root@root GUI]# gcc callback.c
- [root@root GUI]# ./a.out
- <-
- ->
- [root@root GUI]#
复制代码
为什么用&与不用&都一样呢? 又试过signal(XXXX, funCallback)/signal(XXXX,&funCallback)中的funCallback用于不用&也一样。不解,请指教!
谢谢! |
|