[問題] #define一個string in linux

看板C_and_CPP (C/C++)作者 (vvrr)時間10年前 (2015/07/06 12:38), 10年前編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Ubuntu 14.04LTS 問題(Question): 在程式裡先: #define __BUILD_DATE__ " B:20150702 " 然後在其他檔案裡再: const unsigned char* g_BUILDDATE = __BUILD_DATE__ ; 錯誤結果(Wrong Output): 在compile的時候有warning: warning: pointer targets in initialization differ in signedness [-Wpointer-sign] #define __BUILD_DATE__ " B:20150702 " note: in expansion of macro ‘__BUILD_DATE__’ const unsigned char* g_BUILDDATE = __BUILD_DATE__ ; 補充說明(Supplement): 在Win和Android平台上似乎都不會有warning,但是在ubuntu上就會有… 想請問問題是出在哪裡… 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.31.103 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1436157539.A.3FB.html ※ 編輯: vvrr (60.250.31.103), 07/06/2015 12:50:21


07/06 13:11, , 2F
VC系列編譯器非常的forgiving
07/06 13:11, 2F

07/06 13:11, , 3F
不過現在比較嚴謹了
07/06 13:11, 3F

07/06 13:47, , 4F
er...android平台是啥意思囧
07/06 13:47, 4F

07/06 21:34, , 5F
他大概是說sdk吧
07/06 21:34, 5F

07/07 01:57, , 6F
char是signed或unsigned是依照該平台ABI而定
07/07 01:57, 6F

07/07 01:59, , 7F
然後Android/ARM 是 unsigned
07/07 01:59, 7F

07/07 02:00, , 8F
最簡單解法就是把const unsigned char* 的unsigned 拿掉
07/07 02:00, 8F

07/07 11:49, , 9F
謝謝大家,我把unsigned拿掉,warning就消失了...
07/07 11:49, 9F

07/07 11:50, , 10F
android平台是指用android sdk build的情形@@
07/07 11:50, 10F
文章代碼(AID): #1LcWPZFx (C_and_CPP)
文章代碼(AID): #1LcWPZFx (C_and_CPP)