Note that I could also sprintf(buffer, "d3dcompiler_%d", D3D_COMPILER_VERSION), but then I'd need an extra buffer and do something at runtime that the preprocessor can do for us.
If you have to explain the preprocessor magic, then avoiding it would be better. Doing extra work at runtime is obviously not an issue in a test.