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);