1樓:樂跑小子
i=f(4+4)/f(2+2)=4+4*4+4/2+2*2+2=28如果#define f(x) (x*x)
i=f(4+4)/f(2+2)=(4+4)*(4+4)/(2+2)*(2+2)=64
#define f(x) x*x
i=(f(4+4))/(f(2+2));
這樣i=f(4+4)/f(2+2)=(4+4*4+4)/(2+2*2+2)=24/8=3
想到達到效果要這樣寫:
#define f(x) ((x)*(x))i=(f(4+4))/(f(2+2));
這樣i= ((4+4)*(4+4))/((2+2)*(2+2))=4
2樓:
i=f(4+4)/(2+2);
這裡要注意,在編譯的時候,編譯成目標檔案時實際是這樣的:
i=f(8)/4;
也因為這個特點,在定義巨集的時候可以這樣寫:
#define _k 1024
#define _m (1024*_k)
#define _g (1024*_m)
這樣寫,不會讓處理器多做乘法運算,而是編譯器幫忙幹完了這個活
3樓:xiafan**
答案是21
因為你定義的f(x) x*x ,而你下面的i=f(4+4)/(2+2)中是講4+4作為x的值,所以的時候是這樣的, i=4+4*4+4 /(2+2),所以結果是 i=4+16+1 ,當然是21了
c語言的巨集定義問題
c語言define巨集定義的常量計算?
4樓:周大個子
7z=x+1*x/2=5+5/2=5+2=7
巨集定義就是直接代入,沒有括號的
5樓:花開芒夏
z=5+1*5/2=7
關於c語言巨集定義輸出,關於C語言巨集定義輸出
巨集定義就是字串代替,先把整個東西代替進去 a s i s i z s i a a s i 這是三目運算子,從左到右。先是 a s i 這裡是 a s 1 b 成立 接下來是 s i z 這裡是 s 2 c z 也成立 所以是,s i a a 這裡其實就是小寫轉大寫 這裡是,s 3 d a a 結果...
C語言巨集定義意思
巨集定義是c語言提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯。巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集 將巨集名替換為字串。掌握 巨集 概念的關...
C語言define巨集定義的常量計算
7z x 1 x 2 5 5 2 5 2 7 巨集定義就是直接代入,沒有括號的 z 5 1 5 2 7 c語言中常量定義和巨集定義有什麼區別?區別大了個去了.巨集定義是預處理命令.defien a 3 執行後,前處理器把會正文所有全字匹配的a,全部替換為3,那麼,最後的 進入編譯器的 1 a,是變成...