在C中取消定义类似函数的宏?

我试图对glibc做一些黑客攻击,我想知道是否有可能重新定义类似函数的宏?

例如, 具有以下宏:

 #define expm1(Val) __TGMATH_UNARY_REAL_ONLY (Val, expm1) 

如何将expm1重新定义为:

 #define expm1(Val) __TGMATH_UNARY_REAL_IMAG (Val, expm1, cexpm1) 

我想我必须取消之前的定义,但我不知道该怎么做。

究竟。 首先取消定义它。

 #ifdef expm1 #undef expm1 #endif #define expm1(Val) __TGMATH_UNARY_REAL_IMAG (Val, expm1, cexpm1)