I would like to print a macro value (expand the macro) in the #warning directive.
For example, for the code:
#define AAA 17 #warning AAA = ???
The desired compile-time output would be
warning: AAA = 17
What do I use for ???, or, how do I augment the code?
You can use the preprocessor directive #pragma message.
#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:
1.4m articles
1.4m replys
5 comments
56.9k users