这些天最简单的方法是使用宏_Generic.这是一个展示如何使用它的示例.
#define cbrt(X) _Generic((X), \
long double: cbrtl, \
default: cbrt, \
float: cbrtf \
)(X)
Run Code Online (Sandbox Code Playgroud)
因此,根据不同的类型,这个宏将通过调用来代替一个cbrtl(),cbrtf()或cbrt().