c語言巨集定義給數字加括號是為了什麼如 define DI

2021-03-31 22:34:01 字數 940 閱讀 6890

1樓:嶺南張無忌

#define di_input_num 11+2int a = di_input_num * 3那麼a = 11+2 *3 = 11+6 =17#define di_input_num (11+2)int a = di_input_num * 3那麼 a =(11+2)*3 = 13*3=39上面2中情況可以看到第二種才是巨集定義的本意。

所以習慣性會加個括號,其實空定義不管是數字或者表示式,都必須加括號,這是程式設計的很好習慣。

如果因為上面這些沒有加括號情況導致問題,在型專案中這類問題是非常困難定位的。

2樓:匿名使用者

巨集定義有很多問題,因為它是直接替換,經常帶來和想法不符的現象,所有加個括號是個好習慣。

比如#define sum 3+5int x = 10 * sum; 問題就來了,結果是被替換成 x = 10 * 3 + 5; 和本意 x = 10 * (3+5) 不符。

#define sum (3+5)這樣就好了。所以養成一個好的書寫習慣,可以使你少範錯誤。

3樓:匿名使用者

加括號的目的是為了適應不同的使用場合。

這個巨集定義的目的是用 di_input_num 替代數字 11 。

你說的函式。。。我不明白是怎麼回事。

4樓:

貌似加不加括號是一樣的。。。比如

uchar isendbyte(uchar sla,uchar c)

你看哈=。=這裡的話 return 後面也加了括號=。=

5樓:

為了更嚴謹的。。。巨集如果用不好的話,可能會產生奇怪的結果!

6樓:非風分

是不是帶引數的巨集定義啊

c語言的巨集定義問題

什麼是巨集定義,在C語言中 巨集定義是什麼?

巨集定義是高階語言編譯器提供的常用語法,其目的是利用某一識別符號標識某個文字字串。在編寫程式時,如果程式中反覆地使用某個資料或某段程式片段,就可以考慮將這個資料或程式片段定義為巨集,然後每個出現該資料或程式片段的地方用巨集名替代 選擇巨集定義來做的好處是程式簡潔,可讀性好,而且當需要修改這些相同的程...

c語言中define巨集定義和變數定義的聯絡和區別

巨集定義是全域性性的,變數定義是區域性性的,巨集定義主要在預處理階段完成,由前處理器進行字元替換,變數定義則會在記憶體中為變數分配地址。define巨集定義的量是做常量處理的,如 define price 30,下文只要遇到price就代表常量30,他與變數的區別之一是在書出語句中printf d ...

C語言中預處理檔案(define),巨集定義(define)兩個寫法一樣有什麼區別?一定採納

巨集定義是預處理的 預處理的不止是巨集定義。包括你包含的標頭檔案,預處理的定義在以後你學到編譯原理這門課的時候會解釋,他是編譯之前做的一件事情。總之,巨集定義跟預處理不是同一概念,只是巨集定義在編譯的過程中是預處理的。望採納!你寫的兩個不是一樣的嗎 沒有區別。一點區別都沒有 c語言中預處理檔案包含 ...