使用#if ... #endif

时间:2016-03-15 07:09:57

标签: c

如何查看版本> =设置版本,例如2.3.4.17如果我有以下定义(每个可能有1-2位数字)?

#define VERSION_NUM_MAJOR 1
#define VERSION_NUM_MINOR 0
#define VERSION_NUM_SERVPACK 0
#define VERSION_NUM_BUILD 10

如果我有以下定义......

#define VERSION_NUM 1000010

......它会像......一样简单。

#if VERSION_NUM > 2030417

但遗憾的是,传统的SDK没有提供它,我需要它来进行条件编译(“#if ... #endif”)。

我可以这样做,但这看起来很复杂:

#if (VERSION_NUM_MAJOR > 2) || ((VERSION_NUM_MAJOR == 2) && ((VERSION_NUM_MINOR > 3) || ((VERSION_NUM_MINOR == 3) && ((VERSION_NUM_SERVPACK > 4) || ((VERSION_NUM_SERVPACK == 4) && (VERSION_NUM_BUILD >= 17))))))

1 个答案:

答案 0 :(得分:0)

知道了:

#define VERSION_MIN(a,b,c,d) (VERSION_NUM_MAJOR>a)||((VERSION_NUM_MAJOR==a)&&((VERSION_NUM_MINOR>b)||((VERSION_NUM_MINOR==b)&&((VERSION_NUM_SERVPACK>c)||((VERSION_NUM_SERVPACK==c)&&(VERSION_NUM_BUILD>=d))))))
#if VERSION_MIN(2,3,4,17)
#endif