小编Mat*_*uin的帖子

C11中多参数C函数的泛型

我理解单参数函数的C11泛型,如下所示:(从这里)

#define acos(X) _Generic((X), \
    long double complex: cacosl, \
    double complex: cacos, \
    float complex: cacosf, \
    long double: acosl, \
    float: acosf, \
    default: acos \
    )(X)
Run Code Online (Sandbox Code Playgroud)

但是,对于具有两个参数的函数来说似乎很痛苦,你需要嵌套调用_Generic,这真的很难看; 摘自同一篇博客:

#define pow(x, y) _Generic((x), \
long double complex: cpowl, \

double complex: _Generic((y), \
long double complex: cpowl, \
default: cpow), \

float complex: _Generic((y), \
long double complex: cpowl, \
double complex: cpow, \
default: cpowf), \

long double: _Generic((y), \
long double complex: …
Run Code Online (Sandbox Code Playgroud)

c c11

17
推荐指数
4
解决办法
5551
查看次数

标签 统计

c ×1

c11 ×1