作者jigfopsda (jigfopsda)
看板b97902HW
標題[問題] 使徒八
時間Sat Nov 15 18:24:27 2008
批改娘跟我說
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)
1F:推 ming1053:address沒cast之前不能+i吧 11/15 18:28
2F:推 anfranion:要先強制轉換型別唷 11/15 18:43
3F:→ jigfopsda:所以是(unsigned int)((char*)address + i)這樣? 11/15 18:54
4F:推 sa072686:是的,沒轉之前它不知道該移多少bytes 11/15 19:00
5F:→ sa072686:這篇300耶 11/15 19:00
6F:推 ckclark:這個warning是說你傳了printf("..", (xxx, xxx, xxx)); 11/15 19:03
7F:→ ckclark:後面是一個用comma隔開的"一"個expression 11/15 19:04
8F:→ jigfopsda:原來如此...謝謝 11/15 19:13
9F:→ abc123denny:請問print之前一定要轉成(unsigned int)嗎? 11/15 19:16
10F:→ abc123denny:能不能直接轉換指標型態(例如(char*))就直接印出? 11/15 19:16
11F:推 sa072686:可以 11/15 20:07
12F:→ abc123denny:了解,謝謝! 11/15 20:14