推 magrady:PLUS(m1, m2)*MINUS(m2, m1) = m1 + (m2*m2) - m1 = m2*m2 06/17 20:11
→ x000032001:#define PLUS(a, b) (a+b) #define MINUS(a, b) (a-b) 06/17 20:19
推 loveflames:因為先*/後+- 06/17 20:22
推 adks3489:就想成define是直接換掉字 所以會變 m1+m2*m2-m1=3+5*5-3 06/17 20:44
→ saka037:感謝樓上各位前輩~~C語言幹嘛有這種亂七八遭的東西~真是.. 06/17 20:48
推 adks3489:他是方便使用...這並不亂七八糟不要亂用他就好... 06/17 20:53
→ VictorTom:置底十二誡之十; 你應該自己先搞清楚#define macro是怎 06/17 20:58
→ VictorTom:麼運作的然後用好它, 而不是自己不會還怪語言亂七八糟. 06/17 20:59
抱歉~~算到腦筯發燒了~~一時氣話~請勿見怪~~~
另~再請問一題~再請指教~~
#include <stdio.h>
#define MAX(a, b) (a < b ? b : a)
#define PRINT1(x) printf(“%d”, x)
#define PRINT3(x, y, z) PRINT1(x), PRINT1(y), PRINT1(z)
main()
{
int m1 = 1, m2 = 3;
PRINT3( MAX( m1++, --m2), m1, m2);
}
解答為 1 2 1
第一個「1」是2 < 2 ? m2 : m1 所以答案是1.....是這樣沒錯吧??
第二個「2」是因為m1++所以m1的值變為2
第三個就是問題了.....怎麼m2的值變為1了,不是才減1次嗎,難道
後面的m2也以--m2代換了
抱歉各位大大了~~小弟EQ不佳~~再請海函~~
※ 編輯: saka037 來自: 218.187.52.246 (06/17 21:07)
推 loveflames:其實我想知道標題的邊際效應是指什麼 06/17 21:09
→ nowar100:side effect吧 通常是指非Programmer想要確發生的事情? 06/17 21:13
推 loveflames:這個不是叫副作用嗎 06/17 21:16
→ x000032001:PRINT3( (m1++ < --m2 ? --m2 : m1++), m1, m2); 06/17 21:16
→ x000032001:你的程式展開變這樣 --m2用了兩次 當然變1 06/17 21:16
→ saka037:對吼~MAX裡面的m2忘了也代進--m2了~看來我該去冷靜一下了 06/17 21:34
→ adks3489:所以你還是沒看置底十二誡之十.. 06/17 21:34
→ saka037:樓上說的是~先不做題目了~還是自新啃書吧~~感謝指教 06/17 21:36
推 VictorTom:抱歉小弟可能回的衝了點, 冒犯之處也請原po見諒<(_ _)> 06/17 22:45
推 nowar100:的確精華區置底文不爬,只是丟問題等答案,很難進步阿 QQ 06/17 22:47
推 curist:#define PLUS(a, b) ((a)+(b)) 這樣就可以了吧? 06/18 02:52