看板 C_and_CPP 關於我們 聯絡資訊
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev C++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 跟預算的數值不一樣 餵入的資料(Input):預期的正確結果(Expected Output): 36 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版) #define p(a,b) a-b #define m(a,b) a+b #include <stdio.h> #include <stdlib.h> int main(){ int m1=5, m2=3; m1=p(m1+m2,m1-m2)*m(m2-m1,m2+m1); printf("%d",m1); system ("pause"); } 為何輸出不是36 而是-3 ? 補充說明(Supplement): -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.27.124.84
tjjh89017:這是marco問題 a-b => ((a)-(b)) 03/08 21:19
withoutshine:5+3-5-3*3-5+3+5 <-- 你的marco定義的結果 03/08 21:19
那這樣的話,有要考慮優先順序問題?? 但是不是兩個函式式分開的嗎??在最後相乘? ※ 編輯: APE36 來自: 114.27.124.84 (03/08 21:38)
tjjh89017:你先去看看甚麼是marco吧=A= 03/08 21:43
haoboo:marco不是函式(function) 03/08 23:16
diabloevagto:別用marco害死自己了 03/09 01:01
LPH66:...差點以為我的英文老師請假了 @@ 那個字應該拼做 macro 吧 03/09 03:05
jacky1989:為什麼int 不用return? (亂入XD) 03/09 04:04
jacky1989:認真回應:一個是呼叫,一個是置換(應該是這樣稱呼?)? 03/09 04:06
jacky1989:所以先搞清楚function跟macro是什麼吧 03/09 04:07
diabloevagto:我本來也打 macro 看到四樓才改... 03/09 12:31
withoutshine:拼錯字, 我真糟糕 03/10 21:15
tjjh89017:錯字抱歉@@ 03/11 15:49