2016-03-15 35 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