我需要澄清C中的以下符号:
我有一个结构,在该结构中我有以下字段:
bool (* process_builtin)(struct esh_command *);
我在这里很困惑..所以这是一个布尔字段。究竟是什么process_builtin
?我已经定义了一个结构esh_command
,但是我不知道它在这个领域中扮演的角色。有人可以解释整个事情的含义吗?
答案 0 :(得分:2)
这不是布尔字段,pointer to a function取struct 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值。