gpt4 book ai didi

c - 如果它们具有相同的名称并且我无法修改其他文件,如何在其他 C 文件中使用具有相同名称的多个函数?

转载 作者:太空狗 更新时间:2023-10-29 16:06:11 26 4
gpt4 key购买 nike

我有一个程序可以生成包含单个函数 void foo(float* n) {} 的 C 文件。这些文件在函数中具有不同的代码,但名称始终相同。我想创建一个依次运行它们的 C 文件,但是当我尝试包含多个文件时,我得到一个重新定义错误(来自链接器?)。我无法更改生成的 C 文件(否则我只会更改函数名称)。生成的文件都具有不同且唯一的名称,即使函数都有共同的名称,而且我一次只需要使用一个函数(如果有任何类型的释放操作,如宏的 #undef)。

最佳答案

您可以使用预处理器在编译时更改每个文件的函数名称,例如

$ gcc -Wall -Dfoo=foo_1 -c bar1.c
$ gcc -Wall -Dfoo=foo_2 -c bar2.c
$ gcc -Wall -Dfoo=foo_3 -c bar3.c
$ gcc -Wall main.c bar1.o bar2.o bar3.o

这样你就可以调用函数foo_1() , foo_2() , foo_3()来自 main() .

关于c - 如果它们具有相同的名称并且我无法修改其他文件,如何在其他 C 文件中使用具有相同名称的多个函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34032391/

26 4 0