[問題] 用 MACRO function 作乘法結果不對
#define M(a,b) a*b
int main(void)
{
int i = 5, j = 6;
printf("i*j = %d", M(i+1, j-2*2));
return 0;
}
這是一個考試的題目
剛剛拿去跑程式答案是2
為什麼不是6*2=12呢?
define那樣寫法跟函數有什麼不同嗎
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.69.114.26
※ 編輯: yuchiao0921 來自: 219.69.114.26 (07/13 02:40)
推
07/13 02:56, , 1F
07/13 02:56, 1F
推
07/13 02:57, , 2F
07/13 02:57, 2F
→
07/13 02:58, , 3F
07/13 02:58, 3F
推
07/13 02:59, , 4F
07/13 02:59, 4F
→
07/13 03:00, , 5F
07/13 03:00, 5F
剛剛+括弧跑出來是7沒錯
可以問一下是怎麼算的嗎?
※ 編輯: yuchiao0921 來自: 219.69.114.26 (07/13 03:17)
推
07/13 03:27, , 6F
07/13 03:27, 6F
→
07/13 03:30, , 7F
07/13 03:30, 7F
→
07/13 04:11, , 8F
07/13 04:11, 8F
→
07/13 06:46, , 9F
07/13 06:46, 9F
→
07/13 07:49, , 10F
07/13 07:49, 10F
推
07/13 19:03, , 11F
07/13 19:03, 11F
→
07/13 19:06, , 12F
07/13 19:06, 12F
→
07/13 19:15, , 13F
07/13 19:15, 13F
→
07/13 19:18, , 14F
07/13 19:18, 14F
→
07/13 19:50, , 15F
07/13 19:50, 15F
→
07/13 20:22, , 16F
07/13 20:22, 16F
→
07/13 20:22, , 17F
07/13 20:22, 17F
推
07/13 20:45, , 18F
07/13 20:45, 18F
→
07/13 20:46, , 19F
07/13 20:46, 19F
→
07/13 20:48, , 20F
07/13 20:48, 20F
→
07/13 22:00, , 21F
07/13 22:00, 21F
推
07/13 22:57, , 22F
07/13 22:57, 22F
→
07/13 22:59, , 23F
07/13 22:59, 23F
推
07/13 23:08, , 24F
07/13 23:08, 24F
推
07/13 23:25, , 25F
07/13 23:25, 25F
→
07/13 23:27, , 26F
07/13 23:27, 26F
→
07/13 23:28, , 27F
07/13 23:28, 27F
→
07/13 23:30, , 28F
07/13 23:30, 28F
→
07/13 23:32, , 29F
07/13 23:32, 29F
推
07/13 23:34, , 30F
07/13 23:34, 30F
噓
07/14 00:00, , 31F
07/14 00:00, 31F
推
07/14 02:45, , 32F
07/14 02:45, 32F
→
07/14 02:46, , 33F
07/14 02:46, 33F
→
07/14 02:47, , 34F
07/14 02:47, 34F
推
07/14 07:57, , 35F
07/14 07:57, 35F
推
07/19 17:49, , 36F
07/19 17:49, 36F