modernc.org/cc@v1.0.1/v2/testdata/cpp-expand/004.h (about) 1 #define __str(x) # x 2 #define ____header(name, os, arch) __str(name ## _ ## os ## _ ## arch.h) 3 #define ___header(name, os, arch) ____header(name, os, arch) 4 #define __header(name) ___header(name, __os__, __arch__) 5 6 #define bug1(name) __str(name ## _ ## os) 7 bug1(a); 8 9 #define __os__ linux 10 #define __arch__ amd64 11 12 ____header(a, b, c); 13 ___header(a, b, c); 14 __header(a); 15 16 #define __str2(x) #x 17 #define ____header2(name, os, arch) __str2(name##_##os##_##arch.h) 18 #define ___header2(name, os, arch) ____header2(name, os, arch) 19 #define __header2(name) ___header2(name, __os__, __arch__) 20 21 #define bug2(name) __str2(name##_##os) 22 bug2(a); 23 24 ____header2(a, b, c); 25 ___header2(a, b, c); 26 __header2(a);