Ken*_*eth 7 c pointers function
我试图找出如何声明一个函数,该函数返回一个返回函数的函数的指针.这是一个循环问题,我不知道这是否可以在c中完成.这是我正在尝试做的一个说明性示例(它不起作用):
typedef (*)(void) (*fp)(void);
fp funkA(void) {
return funkB;
}
fp funkB(void) {
return funkA;
}
Run Code Online (Sandbox Code Playgroud)
要在C中创建这样的完全循环类型,必须使用struct(或union).在C99:
typedef struct fpc {
struct fpc (*fp)(void);
} fpc;
fpc funkB(void);
fpc funkA(void) {
return (fpc){ funkB };
}
fpc funkB(void) {
return (fpc){ funkA };
}
Run Code Online (Sandbox Code Playgroud)
在C89中,您没有复合文字,因此您必须:
fpc funkA(void) {
fpc rv = { funkB };
return rv;
}
fpc funkB(void) {
fpc rv = { funkA };
return rv;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1320 次 |
| 最近记录: |