gpt4 book ai didi

c - 左值需要作为函数指针赋值的左操作数

转载 作者:行者123 更新时间:2023-12-04 12:16:24 25 4
gpt4 key购买 nike

我正在尝试将函数分配给函数指针,但出现以下错误:

lvalue required as left operand of assignment.

我的代码如下:

#include <stdio.h>
void intr_handler(int param){
printf("Hey there!\n");
}

int main(){
void *(intr_handlerptr)(int);
intr_handlerptr = intr_handler;
}

我看不出那里有什么问题,因为我将函数“intr_handler”分配给指针“intr_handlerptr”并且它们具有相同的签名。我错过了什么?

最佳答案

我不确定 void *(intr_handlerptr)(int); 做了什么(它编译,不过,单独问另一个问题会很有趣,现在是 done )但是这个声明是不正确的。应该是:

void (*intr_handlerptr)(int);

然后你的代码可以正确编译

函数指针教程:https://www.cprogramming.com/tutorial/function-pointers.html

编辑:在讨论了这个语法错误之后,很明显(现在!)

void *(intr_handlerptr)(int);

等同于:

void *intr_handlerptr(int);

所以向前声明一个函数(它不存在所以它不会链接,但你看不到它,因为编译器在尝试向它分配某些东西时会发出错误)

关于c - 左值需要作为函数指针赋值的左操作数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53349751/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com