Concatenate C macro definition string to literal strings

320 views Asked by At

Let the first row be:

#define TAG_LEN 32

Now, I need to concatenate it with a literal string constant; something like that:

puts("Blah" [insert your answer] TAG_LEN); // I need "Blah32".
2

There are 2 answers

1
not-a-user On BEST ANSWER
#define STR_NOEXPAND(tokens) # tokens
#define STR(tokens) STR_NOEXPAND(tokens)
puts("Blah" STR(TAG_LEN));
1
No Idea For Name On

you can do:

printf("Blah%d", TAG_LEN);

or if you have a string

char *yourString;// initiate it with your value

printf("Blah%s%d",yourString, TAG_LEN);