Article explains why STRINGIFY and TOSTRING are both needed.
This technique is useful for embedded apps to print debug strings to a debug console. ASSERT or TRACE statements can incorporate these macros. The line numbers are converted to strings at compile-time rather than run-time.
- #define STRINGIFY(x) #x
- #define TOSTRING(x) STRINGIFY(x)
- #define AT __FILE__ ":" TOSTRING(__LINE__)
- printf( AT " message"); // Expect output like: "snipplr.c:5 message"
You need to login to post a comment.