Dan*_*ngo 2 c typedef function-pointers
我是C的新手,我很难阅读这行代码并理解它:
typedef void (*getnxtbyte_t)(void *stream);
Run Code Online (Sandbox Code Playgroud)
从环顾四周,我现在知道它是指向一个函数的指针.但任何人都可以帮助我进一步澄清这一点吗?这种新型号的名称是什么?它指向什么功能?是函数的参数(void* stream)吗?
提前致谢!
这是一个习惯的棘手语法.
这种新型号的名称是什么?
类型是getnxtbyte_t.(您可以将其描述_t为"类型".这是一个受欢迎的惯例.)
类型的变量getnxtbyte_t可以保存带有一个void *参数并具有返回类型的函数的地址void.
它指向什么功能?
错误的问题.
该代码仅定义了类型.没有变量被创建,所以没有"它"指向任何东西.
如果您知道具有正确签名的函数,例如:
void some_func(void*) {}
Run Code Online (Sandbox Code Playgroud)
您现在可以使用该typedef创建指向它的指针:
getnxtbyte_t my_function_pointer = some_func;
Run Code Online (Sandbox Code Playgroud)