我想覆盖共享库中定义的宏。
例如:
libxyz.so(共享库)有
#define ADDRESS 0
int some_func()
{
...
func_use_addr(ADDRESS);
}
现在我编写一个代码,其中包含我想要的地址" some_func()"使用是(比方说)0xabc36000。
我可以在my.c文件中重新定义ADDRESS宏,以便它可以用作0xabc36000而不是some_func()
中的0吗?
我知道在预处理阶段会替换宏,并且稍后会与共享库进行链接。我想知道是否可以通过修改共享库代码来实现这一目的。
答案 0 :(得分:-3)
是的,您可以重新定义宏。
#ifdef ADDRESS
#undef ADDRESS
#endif
#define ADDRESS 0xabc36000