我有这样的:串联预处理器定义成字符串
#define VERSION_MAJOR 1
#define VERSION_MINOR 0
#define REVISION b
#define VERSION VERSION_MAJOR.VERSION_MINOR REVISION
#define _STRINGIFY(x) #x
#define STRINGIFY(x) _STRINGIFY(x)
int version_major = VERSION_MAJOR;
int version_minor = VERSION_MINOR;
char *revision = STRINGIFY(REVISION);
char *version_string = STRINGIFY(VERSION);
然而,这台version_string
到"1.0 b"
。我想消除VERSION_MINOR和REVISION之间的空间。我试过这个:
#define VERSION VERSION_MAJOR.VERSION_MINOR##REVISION
但它产生"1.VERSION_MINORREVISION"
。显然,这无法正常工作或:
#define VERSION VERSION_MAJOR.VERSION_MINORREVISION
是否可以将两者连接起来预处理值,而不必之间的空间?
我意识到,我拿出在字符串化间接的水平;如果你想把它放回到其他的宏中,那很好。 –