左值作为c函数指针中的一元'&'操作数

时间:2017-09-13 12:07:57

标签: c

我的代码如下,问题也在下面解释lvalue发生的原因;

typedef struct test_item
{
    char id[MENU_NAME_LEN + NULL_SPACE];
    MenuFunction function;
} test_item; 

 typedef void (*MenuFunction)(VmSystem *);

void display(VmSystem * system)
{
    printf("test");
}

我能够为我分配ID,但是当我尝试分配函数指针时,我得到以下错误lvalue作为一元&操作数

test_item test;
test.function = &display(system);

1 个答案:

答案 0 :(得分:5)

你的意思是:

test.function = display;

()之后display表示调用该函数。只需display将评估指向该函数的指针。不需要&display