我是 C 的新手,我很难阅读并理解这行代码:
typedef void (*getnxtbyte_t)(void *stream);
环顾四周,我现在知道这是一个指向函数的指针。但是谁能帮我进一步澄清这一点?这种新类型的名称是什么?它指向什么功能?函数的参数是(void* stream)
吗?
提前致谢!
最佳答案
要习惯它是一种棘手的语法。
这种新类型的名称是什么?
类型是getnxtbyte_t
. (您可以将尾随的 _t
读作“类型”。这是一种流行的约定。)
getnxtbyte_t
类型的变量可以保存接受一个 void *
的函数的地址参数并具有返回类型 void
.
它指向什么函数?
错误的问题。
该代码仅定义 类型。没有创建变量,所以没有“它”指向任何东西。
如果您知 Prop 有正确签名的函数,例如:
void some_func(void*) {}
您现在可以使用该 typedef 创建一个指向它的指针:
getnxtbyte_t my_function_pointer = some_func;
关于c - C 中带有函数指针的 Typedef?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8889436/