如何向c11 _Generic函数添加额外的类型?
你是否必须要 #undef / 重新 #define 它?(如果是这样,下面的方法可行吗?)或者有更好的方式吗?
#define to_str(X) _Generic((X), \
long double: ld_str, \
double: d_str, \
float: f_str, \
)(X)
#undef to_str
#define to_str(X) _Generic((X), \
long double: ld_str, \
double: d_str, \
float: f_str, \
int: i_str, \
)(X)
default
并不是问题,而是我认为X
与类型泛型表达式的所有分支的兼容性是问题。请参见我的编辑。 - Jens Gustedt