令人困惑的C语法

时间:2012-08-29 04:39:01

标签: c

我正在审查一些C代码,但很难理解Callback究竟是什么。有谁知道这意味着什么?我猜它正在定义“回调和x是一个无效*?

typedef void (*Callback)(bool x);

2 个答案:

答案 0 :(得分:5)

它创建了一个新的类型名称Callback。每个Callback都是指向bool并返回void的函数的指针。实际上Callback将是该真实类型的别名。所以当你说:

Callback ptr = some_fun;

你正在创建一个指向some_fun的函数指针。函数指针通常作为参数传递给其他函数。

答案 1 :(得分:2)

它通过名称Callback声明一个函数指针类型,它指向一个函数,该函数接受bool输入参数并返回void
指定语句后,可以使用Callback作为类型来保存具有指定类型的函数的地址。

如有疑问,请参阅 Clockwise spiral rule