全く知らなかったのだけれど,C11の新機能として_Genericという組み込み関数が提供されていた. Generic selection - cppreference.com jameshfisher.com というのをこのブログを見て気づいたんですが, #include <stdio.h> int main() { char* x = "foo"; printf("Type of x is: %s\n", _Generic(x, char*: "string", int: "int")); return 0; } これは完全に動くコード (最初よく文章を読んでなくて,大方擬似コードだろうと侮っていたら本当に動いて驚いた). だいたい分かると思うんですが,上記のコードは char*の引数が_Genericに渡されるとstringという文字列を出力し,intの引数が与えられるとintという文