[問題] 使徒八

看板b97902HW作者 (jigfopsda)時間15年前 (2008/11/15 18:24), 編輯推噓5(507)
留言12則, 6人參與, 最新討論串1/1
批改娘跟我說 source.c:44: warning: left-hand operand of comma expression has no effect source.c:44: warning: left-hand operand of comma expression has no effect 那一行是 printf("%08X: %*s\n", ((unsigned int)(address + i), w, *(char*)(address + i))); 那什麼意思? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 203.73.234.91 ※ 編輯: jigfopsda 來自: 203.73.234.91 (11/15 18:25)

11/15 18:28, , 1F
address沒cast之前不能+i吧
11/15 18:28, 1F

11/15 18:43, , 2F
要先強制轉換型別唷
11/15 18:43, 2F

11/15 18:54, , 3F
所以是(unsigned int)((char*)address + i)這樣?
11/15 18:54, 3F

11/15 19:00, , 4F
是的,沒轉之前它不知道該移多少bytes
11/15 19:00, 4F

11/15 19:00, , 5F
這篇300耶
11/15 19:00, 5F

11/15 19:03, , 6F
這個warning是說你傳了printf("..", (xxx, xxx, xxx));
11/15 19:03, 6F

11/15 19:04, , 7F
後面是一個用comma隔開的"一"個expression
11/15 19:04, 7F

11/15 19:13, , 8F
原來如此...謝謝
11/15 19:13, 8F

11/15 19:16, , 9F
請問print之前一定要轉成(unsigned int)嗎?
11/15 19:16, 9F

11/15 19:16, , 10F
能不能直接轉換指標型態(例如(char*))就直接印出?
11/15 19:16, 10F

11/15 20:07, , 11F
可以
11/15 20:07, 11F

11/15 20:14, , 12F
了解,謝謝!
11/15 20:14, 12F
文章代碼(AID): #197gDSQo (b97902HW)