函数名称别名

时间:2014-06-10 09:10:32

标签: c++ c function alias

我有一个调用函数的库:例如malloc。 我在我的应用程序中使用该库。我希望库不调用malloc,而是每次调用malloc时我都定义了“mymalloc”的函数。 简而言之,我想使用具有不同名称的my符号来解析malloc符号。

我试过这个链接器选项:-Wl, - defsym = malloc = mymalloc

它只适用于应用程序中的调用 即:程序中对malloc的每次调用都解析为mymalloc,但库中的调用仍调用stdlibc malloc。

非常感谢, 的Davide

1 个答案:

答案 0 :(得分:0)

这很粗糙,但您可以使用预处理器 - 优点是预处理器在编译之前运行:

#define malloc mymalloc

在任何标准库包含之前,您必须#include包含mymalloc 声明的文件。

您还必须自己重建任何已编译的库。实际上,我建议在制作中这样做:我认为代码会很脆弱,并且你可能潜伏不定mallocs潜伏在每个角落。