如何爲c11 _通用函數添加額外的類型?c11 _通用添加類型
您是否需要#undef/re-#定義它?(如果是的話,下面的工作)還是有更好的方法?
#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)
注意:如果原始宏未定義「默認」選擇,則包裝將不起作用。請參閱comp.lang.c上的線程[Nested _Generic selections](https://groups.google.com/d/topic/comp.lang.c/1RQvT2a5DF0/discussion)。 – 2012-04-17 21:23:18
@ J.C.Salomon,我認爲缺乏'default'不是問題,但我認爲''X類型泛型表達式的所有分支的可兼容性是我想的。看我的編輯。 – 2012-04-18 07:45:34