I'm looking for a way to convert a preprocessor token to a string.
Specifically, I've somewhere got:
#define MAX_LEN 16
and I want to use it to prevent buffer overrun:
char val[MAX_LEN+1]; // room for \0
sscanf(buf, "%"MAX_LEN"s", val);
I'm open to other ways to accomplish the same thing, but standard library only.
Best Answer
see http://www.decompile.com/cpp/faq/file_and_line_error_string.htm specifically:
so your problem can be solved by doing
sscanf(buf, "%" TOSTRING(MAX_LEN) "s", val);