gpt4 book ai didi

gcc - 我定义了一个名为 'free' : How to stop glibc's printf from using it? 的 C 函数

转载 作者:行者123 更新时间:2023-12-04 18:38:21 26 4
gpt4 key购买 nike

我的操作系统类分配需要定义一个名为 free 的 C 函数它与 libc free 的工作方式不同. (我们正在做一个内存分配器练习。)

我所有的代码都使用我自己的 free 变体,所以这在我自己的代码中不是问题。但是,当 glibc 使用 free在内部(例如对于 vprintf),它最终使用我的 free而不是自己的。

我正在使用 Ubuntu 11.10(libc6 版本 2.15-0ubuntu10)。我听说它不会发生在其他 Ubuntu 版本上,我想知道我是否可以通过一些编译/链接标志来获得其他版本的行为。

顺便说一句,命名你自己的函数free不是最佳实践,但假设我别无选择:-)

最佳答案

不要命名你的函数free如果它具有外部链接,则保留函数名称作为具有外部链接的标识符。

(C99, 7.1.3p1) "All identifiers with external linkage in any of the following subclauses (including the future library directions) are always reserved for use as identifiers with external linkage."

关于gcc - 我定义了一个名为 'free' : How to stop glibc's printf from using it? 的 C 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10905733/

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