タイトルのとおりだが、難しいぞ。 例えば、こういうのなら簡単だ: #define _CONCAT(X,Y) X ## Y #define CONCAT(X,Y) _CONCAT(X, Y) #define HEY(X) CONCAT(X, X) #define YO yo int HEY(YO); int yoyo;になるはず。 この、一段プリプロセサの命令を使う前に展開させるためのクッションを入れるテクを使うと、例えば、 #include CONFIGFILE(def) が、 #include "defconfig" になってほしいなら、 #define QUOTE(X) # X #define QUOTIFY(X) QUOTE(X) #define _CONCAT(X,Y) X ## Y #define CONCAT(X,Y) _CONCAT(X, Y) #define _CONFIG