c - C 中带有函数指针的 Typedef?

标签 c function-pointers typedef

我是 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/

相关文章:

c - C 程序中的 AT&T 汇编语法(GCC 编译器)?

c - 使用函数指针

c - C 中的函数指针是如何工作的?

c++ - 调用一个函数指针,其分配的函数的参数少于指针类型

c - 初始化包含指向其自身类型的指针的常量结构

在 codeblock 中编译,但不在 hackerrank 中编译

c - Stack中的局部变量及其在C程序中的使用顺序

c - 使用 libavformat 比使用 popen 调用 ffmpeg 更快吗?

c - 如何在 C 中将 typedef 用于 extern 函数?

C typedef 和指向结构的指针