Concatenação de string em tempo de compilação em C

Em compiladores compatíveis com C99, strings adjacentes são concatenadas em tempo de compilação.

int main()
{
printf
("Hello, " /* Cruel */ "World!n");
}

Isso permite que você crie strings de forma programática em tempo de compilação, utilizando macros pré-processador:

#define PKG "com/example"
#define CLASSNAME(pkg, cls) pkg "/" cls
// ...
char* classNames[] = {
CLASSNAME
(PKG, "Foo"), // --> "com/example/Foo"
CLASSNAME
(PKG, "Bar"), // --> "com/example/Bar"
CLASSNAME
(PKG, "Baz"), // --> "com/example/Baz"
CLASSNAME
(PKG, "Wiz"), // --> "com/example/Wiz"
CLASSNAME
(PKG, "Wat") // --> "com/example/Wat"
};