覆盖C中的函数调用
我想为了记录调用而覆盖对各种API的某些函数调用,但我也可能希望在将数据发送到实际函数之前对其进行操作。
例如,假设我getObjectName
在源代码中使用了一个名为数千次的函数。我想暂时覆盖此函数,因为我想更改此函数的行为以查看不同的结果。
我创建了一个像这样的新源文件:
#include <apiheader.h> const char *getObjectName (object *anObject){ if (anObject == NULL) return "(null)"; else return "name should be here";}
我像往常一样编译所有其他源代码,但是在链接API的库之前我首先将它链接到此函数。这工作正常,但我显然不能在我的重写函数中调用真正的函数。
是否有一种更简单的方法来“覆盖”一个函数而不会链接/编译错误/警告?理想情况下,我希望能够通过编译和链接一个或多个额外的文件来覆盖该函数,而不是通过链接选项或改变我的程序的实际源代码。
潇湘沐
犯罪嫌疑人X
相关分类