我在C ++ Struct {...}中遇到了一个我从未见过的声明。 谁能告诉我它意味着什么;
struct DerivedMesh {
char cd_flag;
void (*calcNormals)(DerivedMesh *dm); // <-- What is this?
它看起来像是取消引用一个名为calcNormals的指针,但这就是我能搞清楚的。
答案 0 :(得分:2)
这是用于声明function pointers。
的C语法在此特定示例中,DerivedMesh
将具有成员calcNormals
,该成员是指向接受类型DerivedMesh*
的单个参数的函数的指针。它可以像普通函数一样调用:
void foo(DerivedMesh* dm) { ... }
DerivedMesh dm;;
// Init members and set calcNormals to actual function
dm.cf_flag = whatever;
dm.calcNormals = foo;
dm.calcNormals(&dm); // calls foo
答案 1 :(得分:0)
此
void (*calcNormals)(DerivedMesh *dm);
是名为calcNormals
的类数据成员定义,其类型为指向void( DerivedMesh * )
类型函数的指针