gpt4 book ai didi

c - dlsym - "Too many arguments to function"错误

转载 作者:行者123 更新时间:2023-11-30 15:00:17 28 4
gpt4 key购买 nike

我正在做一个涉及动态加载共享库的 C 练习。当我使用 gcc -o test2 test2.c -ldl 命令编译测试程序时,出现错误:

test2.c: In function ‘main’:
test2.c:27:5: error: too many arguments to function ‘test’
(*test)(array, size);

这是我收到错误的地方:

void (*test)(void);    
test = dlsym(handle, "lib_fill_random");
(*test)(array, size);

lib_fill_random 在 .h 和 .c 文件中均使用两个参数声明为 void lib_fill_random(double *array, int size);,并且它工作得很好就其本身而言。

什么可能导致此问题?

最佳答案

函数指针声明必须与实际函数的声明匹配。所以应该是:

void (*test)(double *, int);

您的声明声明该函数不带参数,因此当您使用参数调用它时会出现错误。

关于c - dlsym - "Too many arguments to function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42201129/

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