2016-03-15 100 views
-1

如何检查版本> =设置版本,例如2.3.4.17如果我有以下定义(每个可能有1-2位数字)?使用#if检查版本号... #endif

​​

如果我有以下定义...

#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)))))) 

回答

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