1
21
第一个是指向函数的指针。换句话说,它声明一个变量“x”,该变量指向以下类型的函数:
其用途如下:
第二个似乎是无效的语法,但我可能错了。如果它在x之前有一个星号(例如int(*x[10])(int,char*,void*),它将是一个函数指针数组,并将像普通数组一样使用:
第三个是指向函数指针的指针数组,这似乎不实际,但完全有效。示例用法可能是:
注意,前两个比较常见。指向函数的指针用于在C中完成回调和各种面向对象的编程概念。指向函数的指针数组可用于事件表,以查找适当的回调。 请注意,所有这些实际上都是有效的C++。;) 编辑:我显然犯了void main()的暴行。 编辑2:正如ChrisLutz在下面指出的,它们确实应该用typedef包装。typedef使包含指向函数的指针的代码更加清晰。 |
2
31
你需要
|
3
7
|
4
6
它们是函数指针,如上所述,但写得相当令人讨厌(在我看来)。我写它们的方式是:
见 Walt W's excellent answer 有关函数指针的详细信息。 |
5
3
因为C的语法就像C++中的一个, geordi 可能对你有意思。它是教和学习这些声明的另一个很好的工具(以及其他与C++相关的东西,有时也是C)。
正如它的页面所解释的,它可以做得更多,包括为您构建一个类型。
如果您原则上知道如何申报物品,但不确定只有一件物品,您可以使用括号:
如果您想了解标识符的情况,也可以更改名称的类型。
如果您构建了一个声明,但不确定运算符的优先级,那么geordi的优先级函数可以帮助您解决这个问题。
|
Community wiki · C中有哪些耗时的操作? 1 年前 |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |