gpt4 book ai didi

c - C 中的函数是否有 "type name"?

转载 作者:行者123 更新时间:2023-12-04 12:05:48 26 4
gpt4 key购买 nike

在 C 中可以定义一个函数指针,但是是否有指针指向什么的"typename"?

要详细说明,可以有一个类型定义而不是 void (*fubar)(void),这样就可以将 fubar 声明为 Frob* fubar?

最佳答案

函数指针没有标准类型名称,就像 int 一样。此外,没有关键字为它们命名空间标签,就像 struct 一样。相反,如果您想按名称引用函数原型(prototype)或指向函数的指针,则应使用 typedef

考虑以下 typedef:

typedef void Frob (void);

如果没有 typedef 关键字,声明将用于名为 Frob 的函数的原型(prototype)。使用 typedef,名称 Frob 现在是匹配该原型(prototype)的函数的类型别名。所以,它可以像这样使用:

Frob foo;
Frob *fubar = foo;
void foo (void) { puts(__func__); }
int main (void) { fubar(); }

通常,typedef 以这种方式工作,它可以将变量声明(无初始值设定项)转换为类型别名。

关于c - C 中的函数是否有 "type name"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56160672/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com