Concatenate int to string using C Preprocessor
Classical C preprocessor question....
#define STR_HELPER(x) #x
#define STR(x) STR_HELPER(x)
#define MAJOR_VER 2
#define MINOR_VER 6
#define MY_FILE "/home/user/.myapp" STR(MAJOR_VER) STR(MINOR_VER)
The extra level of indirection will allow the preprocessor to expand the macros before they are converted to strings.
A working way is to write MY_FILE as a parametric macro:
#define MY_FILE(x,y) "/home..." #x #y
EDIT: As noted by "Lindydancer", this solution doesn't expand macros in arguments. A more general solution is:
#define MY_FILE_(x,y) "/home..." #x #y
#define MY_FILE(x,y) MY_FILE_(x,y)