如何使用作为结构成员的函数指针

时间:2016-05-05 01:48:57

标签: c

我的结构具有作为其成员之一的功能。 像

    Creature.move = moveAway;

moveAway是该函数的名称。 那么你怎么能正确使用这个功能呢?

2 个答案:

答案 0 :(得分:3)

该成员是一个函数指针,您可以像普通函数一样调用它:

Creature.move();

或者,如果需要进一步的论据:

Creature.move(arg1, arg2, arg3);

(如果你愿意,你可以先取消引用函数指针,但它会直接衰减回函数指针:(*Creature.move)();(**Creature.move)();(*****Creature.move)();,...)

答案 1 :(得分:3)

C没有成员函数,这意味着您的成员显然不是函数,而是函数指针。为了通过该指针调用目标函数,您可以选择

Creature.move( /* arguments */ );

(*Creature.move)( /* arguments */ );

选择您最喜欢的人。两种变体都做同样的事情。