我正在尝试对glibc进行一些修改,我想知道是否可以像宏那样重新定义函数?
例如,<tgmath.h>具有以下宏:

#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)

08-04 20:08