You write a macro with other values, and it gets compiled into different code, which can then in turn run differently.
Macros give you a hook into the compiler to help you shape and guide what code it emits during the compilation itself.