1樓:匿名使用者
你用的都是巨集定義,巨集定義編譯的時候替換的。具體到你這個問題,print1(fudge(5)*x);
是這樣替換的,fudge(5)*x這個整體作為引數巨集定義裡的引數a,這裡面還有一個引數巨集fudge(5),它是這麼替換的,2.84+5。而在print1這個巨集裡,替換後的引數為2.
84+5*2。又因為你是int型別,所以輸出為12。
一些建議:
巨集裡面只是簡單替換,不會幫你改變運算順序,如果需要請用小括號改變相關運算順序。
print1(fudge(5)*x);修改為print1( ( fudge(5) ) *x);看看。
巨集引數記得加上小括號。#define fudge(y) 2.84+y中的y寫成 2.84+(y)
希望對你有所幫助。
2樓:匿名使用者
fudge(5) 會被替換為 2.84+5
所以 print1的引數fudge(5)*x 是 2.84+5*x,乘法優先順序高,所以5.x先計算,參數列達式值是 12.84, 轉成整數是12.
3樓:
不會先計算2.84+y,是把2.84+y*x一起計算,也就是(int) (2.84+5*2)結果是12
求助 default 在c語言中是什麼意思?
4樓:匿名使用者
default表示除了上面的情況外的所有情況
5樓:求賀撥平
default
kk:dj:
n.[u]
1. 不履行,違約,拖欠
be in default on a loan
拖欠借款
2. 不參加(比賽);(中途)棄權
the other team didn't arrive, so our team won by default.
由於對方球隊未到,我隊以其棄權而獲勝。
3. 【律】缺席
a default judgment was issued against the defendant.
被告受到了缺席審判。
4. 【電腦】隱含值,系統預設值
vi.1. 不履行,拖欠[(+on/in)]
let's both try not to default on our commitments.
讓我們雙方一起努力,不違反自己的承諾。
2. 不出場;不參加;不到案;棄權
the player defaulted in the tournament because of her injury.
在這次迴圈賽中,這位運動員由於受傷而棄權。
vt.1. 不履行,拖欠
foreign debts were defaulted.
外債沒有如期償還。
2. 對...處以缺席裁判
3. 不參加(比賽)
C語言程式設計,c語言程式設計。
判斷 字串 s是否和 相等 strcmp s,表示s字元陣列是否是等於號加上字串結束符,其實單單比較是否為等於號 改為 c語言程式設計 int mian 應該是int main 你要輸入一個數才行,建議你加一個提示輸入的語句 c語言程式設計。else 非字母 switch read buf brea...
c語言問題,C語言問題?
include include int main max min i 0 sum i 0 i 1 i 2 i 3 i 4 i 5 i 6 for j 0 j 6 j printf 去掉一個最高分 0.6lf max printf 去掉一個最低分 0.6lf n min printf 該選手最後的得分...
c語言問題,C語言問題?
char的範圍是 128 127的 你362就溢位了嘛 是這樣的 0362 0是表示8進位制 於是362在10進位制下是242 242溢位了 128 127 於是結果變成242 128 128 14 要明白這個,首先要明白記憶體中 c 變數是什麼樣子的。整數在記憶體中是以補碼的形式存取的。c 036...