[問題] #define MACRO

看板C_and_CPP作者 (啾啾)時間12年前 (2012/04/08 19:04), 編輯推噓0(009)
留言9則, 2人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) [問題] #define SQR(x) ((x)*(x)) int main(){ int count; for(count=0; count<5; ++count){ printf("%d, %d", count+1, SQR(count+1)); } } 為什麼OUTPUT變成 1, 1 2, 3 3, 5 4, 7 5, 9 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.164.117

04/08 19:12, , 1F
我跑的結果, 1, 12, 43, 94, 165, 25 如預期的結果
04/08 19:12, 1F

04/08 19:14, , 2F
http://ideone.com/a0jOQ 用ideone跑也是
04/08 19:14, 2F

04/08 19:18, , 3F
我找到問題 THX
04/08 19:18, 3F

04/08 19:19, , 4F
SQR((count+1))不然四則運算會有問題
04/08 19:19, 4F

04/08 19:21, , 5F
換我疑惑了,你那括號可以不用阿?
04/08 19:21, 5F

04/08 19:23, , 6F
不加括號 SQR(count+1*count+1)不會嗎??
04/08 19:23, 6F

04/08 19:23, , 7F
我懂你意思了 因為我在define的時候已經有用()了
04/08 19:23, 7F

04/08 19:23, , 8F
謝謝
04/08 19:23, 8F

04/08 19:25, , 9F
別這麼客氣
04/08 19:25, 9F
文章代碼(AID): #1FWN2r39 (C_and_CPP)