[問題] #define做出版本號碼
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
無
問題(Question):
#define PRD_MAJVER 3
#define PRD_MINVER 0
#define PRD_FIX 0
#define PRD_BUILD 5
#define NAME JamesTool
我有這樣的前置定義,想做出一個 MAKE_VER_STR
printf("%s\n", MAKE_VER_STR(PRD_MAJVER,PRD_MINVER,PRD_FIX,PRD_BUILD));
這樣可以印出 3.0.0.5
以及另一個 PROJ_NAME_VER
printf("%s\n", PROJ_NAME_VER(NAME,PRD_MINVER,PRD_FIX,PRD_BUILD));
這樣可以印出 JamesTool_3.0.0.5
不過實在不知道該怎麼做…用#與##瞎試了半天還是弄不出來
#define PRD_MAJVER 3
#define PRD_MINVER 0
#define PRD_FIX 0
#define PRD_BUILD 5
#define MAKE_VER_STR(A,B,C,D) #A###B###C###D
int main()
{
printf("%s\n", MAKE_VER_STR(PRD_MAJVER, PRD_MINVER, PRD_FIX, PRD_BUILD) );
return 0;
}
預期 3005
印出 PRD_MAJVERPRD_MINVERPRD_FIXPRD_BUILD
我也不知道要怎麼把小數點加上去...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 111.67.48.156
→
12/28 15:22, , 1F
12/28 15:22, 1F
→
12/28 15:26, , 2F
12/28 15:26, 2F
我剛剛嘗試想把您的範例修改成
#define VER_STR MAKE_VER_STR(PRD_MAJVER, PRD_MINVER, PRD_FIX, PRD_BUILD)
不過結果又變成了
PRD_MAJVER.PRD_MINVER.PRD_FIX.PRD_BUILD
JamesTool_PRD_MAJVER.PRD_MINVER.PRD_FIX.PRD_BUILD
難道沒有辦法替換成數字嗎 orz
→
12/28 16:54, , 3F
12/28 16:54, 3F
這就是我要的!原來這麼簡單 XDDDDD
太感謝兩位了
※ 編輯: james732 來自: 111.67.48.156 (12/28 17:11)
→
12/28 18:50, , 4F
12/28 18:50, 4F
推
12/28 19:32, , 5F
12/28 19:32, 5F
→
12/28 20:06, , 6F
12/28 20:06, 6F
推
12/29 12:08, , 7F
12/29 12:08, 7F
→
12/29 13:06, , 8F
12/29 13:06, 8F
推
12/29 18:57, , 9F
12/29 18:57, 9F
推
12/29 19:15, , 10F
12/29 19:15, 10F
推
12/29 19:17, , 11F
12/29 19:17, 11F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章