It is exactly what the error says. This is because the macro expects the first argument to be definition how to display things (the formatting string). The macro wants to have access to the formatting string immediately when the macro is expanded. Variables and constants are not supported, because they don't exist yet when macros are expanded (macros run before everything else). The first argument has to be string literal directly.