標題: C語言軟件版本號宏定義的高級技巧 [打印本頁]
作者: yunjie167 時間: 2017-9-23 13:59
標題: C語言軟件版本號宏定義的高級技巧
在編寫程序的時候,經常會用到VERSION,用來表示程序的版本號有的時候我們還希望里面加個日期,例如: "System V2.0.1.2017.9.13"
又有的時候我們只想讀出數字版本號,例如2, 0, 1,有的時候又想如果想將里面的2, 0, 1這3 個數字提取出來,該怎么做呢?
通常做法是這樣的:
- #define MAINVER 2
- #define SUBVER1 0
- #define SUBVER2 1
-
- #define VERSTR "System V2.0.1.2017.9.13"
復制代碼
如果想修改下版本號,即需要修改前面3 個數字宏,又要修改后面的字符串宏,最后還得將日期寫上;
那有沒有什么辦法將工作量減小到最少,只要更改前面3 個宏就可以了呢?
答案當然是可以的了,請看:
- #define MAINVER 2
- #define SUBVER1 0
- #define SUBVER2 1
-
- #define STR(s) #s
- #define VERSION(a,b,c) "System V" STR(a) "." STR(b) "." STR(c) " "__DATE__
- //#define VERSTR "System V2.0.1.2017.9.13"
-
-
- void main()
- {
- printf("%s\n",VERSION(MAINVER,SUBVER1,SUBVER2));
- getch();
- }
復制代碼
說明: 這個日期是當前文件被編譯的生成日期,如果您沒有修改這個文件,那日期是不會變的,我想您修改了代碼也一定
不會忘記修改下版本號,所以這個日期字符串肯定是當前的日期;還有一點,這個日期的格式我目前找不到自定義的辦法
如果有知道的歡迎留言告訴我~
| 歡迎光臨 (http://www.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |