gpt4 book ai didi

c - 在 C 中使用标准函数名称

转载 作者:太空狗 更新时间:2023-10-29 15:14:00 24 4
gpt4 key购买 nike

我正在编译一个名为 nauty 的程序。该程序使用规范的函数名称 getline,它也是标准 GNU C 库的一部分。

是否可以在编译时告诉 GCC 使用这个程序定义的函数?

最佳答案

一个解决方案:

现在你在某个应用程序 .h 文件中声明了函数,例如:

int getline(...); // the custon getline

将其更改为:

int application_getline(...); // the custon getline
#define getline application_getline

我认为应该这样做。它还将修复定义函数的 .c 文件,假设它包含 .h 文件。

此外,使用grep 或编辑器的“在文件中查找”来确保该宏生效的每个地方都不会造成麻烦。

重要提示:在每个文件中,确保 .h 文件包含任何可能使用 getline 符号的标准 header 之后。您不希望该宏在那些...中生效

注意:这是一个丑陋的 hack。再者,根据某些标准,几乎所有涉及 C 预处理器宏的东西都可以被认为是丑陋的 hack ;)。话又说回来,让现有的不兼容代码库协同工作通常是可以接受黑客攻击的情况,尤其是在不关心长期维护的情况下。

注 2:根据 this answer正如评论中指出的那样,这是 C 标准未定义的行为。请记住这一点,如果打算更长时间地维护软件,那么只需一次获得可运行的可执行二进制文件即可。但是我添加了a better solution .

关于c - 在 C 中使用标准函数名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19000811/

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