功能取决于C中的数据类型

Woo*_*ggy 2 c

是否有可能在C中定义依赖于数据类型的函数.我想定义一个函数,它使用不同的过程,取决于1d数组或2d数组作为参数.

Bil*_*nch 7

这些天最简单的方法是使用宏_Generic.这是一个展示如何使用它的示例.

#define cbrt(X) _Generic((X), \
          long double: cbrtl, \
              default: cbrt,  \
                float: cbrtf  \
)(X)
Run Code Online (Sandbox Code Playgroud)

因此,根据不同的类型,这个宏将通过调用来代替一个cbrtl(),cbrtf()cbrt().

  • 它是C11而不是C99. (2认同)