结构表示法

时间:2012-03-07 15:13:08

标签: c struct boolean

我需要澄清C中的以下符号:

我有一个结构,在该结构中我有以下字段:

bool (* process_builtin)(struct esh_command *);

我在这里很困惑..所以这是一个布尔字段。究竟是什么process_builtin?我已经定义了一个结构esh_command,但是我不知道它在这个领域中扮演的角色。有人可以解释整个事情的含义吗?

4 个答案:

答案 0 :(得分:2)

这不是布尔字段,pointer to a functionstruct esh_command*并返回bool;该字段称为process_builtin

你也可以写:

typedef bool (* process_builtin_t)(struct esh_command *);

在这种情况下process_builtin_t将是一种类型,在这种情况下,您可以将该struct成员的定义写为:

process_builtin_t process_builtin;

答案 1 :(得分:2)

这是指向function的指针。使用cdecl(并将bool更改为int)会显示:

declare process_builtin as pointer to function (pointer to struct esh_command) returning int

link是整个输出的永久链接。

答案 2 :(得分:1)

process_builtin是一个函数指针。它指向的函数将esh_command*作为参数并返回bool

答案 3 :(得分:0)

这是一个指向函数的指针,该函数将指向struct esh_command的指针作为参数并返回bool值。

http://www.cprogramming.com/tutorial/function-pointers.html