C preprocessor: expand macro in a #warning

You can use the preprocessor directive #pragma message.

Example:

#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)

#define AAA 123
#pragma message "content of AAA: " STR(AAA)

int main() { return 0; }

The output may look like this:

$ gcc test.c
test.c:5:9: note: #pragma message: content of AAA: 123
 #pragma message("content of AAA: " STR(AAA))
         ^

For reference:

  • https://gcc.gnu.org/onlinedocs/gcc/Diagnostic-Pragmas.html
  • https://msdn.microsoft.com/en-us/library/x7dkzch2.aspx
  • https://clang.llvm.org/docs/UsersManual.html#controlling-diagnostics-via-pragmas

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)