[問題] #define 使用的問題

看板C_and_CPP作者 (2-D)時間15年前 (2009/03/27 01:17), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
#include<stdio.h> #define f(x)(x*x+2*x+9) void main(){ int i=2; printf("%d, %d \n", f(i), f(i+1)); } 請問為什麼f(i+1)跑出來是19呢? 代了很多變數都覺得很奇怪, 找了相關文章只知道避免這種情況發生是要在x變數再加上括號, 但還是不清楚19是怎麼被運算出來的? 麻煩大家幫忙解釋一下,謝謝了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 125.224.13.136

03/27 01:19, , 1F
i+1*i+1+2*i+1+9 2+1*2+1+2*2+1+9=19
03/27 01:19, 1F

03/27 02:07, , 2F
真是清楚,謝謝你了
03/27 02:07, 2F

03/27 13:01, , 3F
x=>(x) 就對了
03/27 13:01, 3F
文章代碼(AID): #19oxYdMP (C_and_CPP)