- 最近,我发现了一种用C语言定义函数指针的令人惊讶的方法:
typedef void (func_type)(void);
func_type *func_ptr;
这是定义函数指针的正确方式吗?
- 如果我们如下定义func_obj,那么这个对象的类型是什么,这个对象可以用来做什么?
#include <stdio.h>
typedef void (func_type)(void);
func_type *func_ptr;
func_type func_obj;
int main()
{
printf("Size of func_obj: %zu\n", sizeof func_obj);
printf("Size of func_ptr: %zu\n", sizeof func_ptr);
return 0;
}
代码打印如下:
Size of func_obj: 1
Size of func_ptr: 8