The C preprocessor can be remarkably difficult to reason about: https://blog.robertelder.org/7-weird-old-things-about-the-c-preprocessor/