我想自己编写一些 libc 函数(但不是所有 libc!)以提高我程序的性能。但是 GCC 是在编译程序中使用它们而不是 libc 函数还是忽略它们?
最佳答案
几乎所有 glibc 中的公共(public)符号都是 weak linked ,这意味着您可以提供自己的实现,该实现将在链接期间优先于弱符号。
所以,是的。您可以使用相同的名称/参数定义自己的函数,它们将被使用。请务必查看头文件以查看函数的真实签名,某些函数可能是扩展为另一个函数的宏。
您还可以创建一个包含要覆盖的函数的共享库,并让动态链接器预加载它以覆盖共享库中的函数。参见 this question获取更多信息。
关于c - 用户定义的函数是否能够代替 libc 的函数执行操作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19345044/