1樓:千鋒教育
巨集定義是c語言提供的三種預處理功能的其中一種,這三種預處理包括:巨集定義、檔案包含、條件編譯。
巨集定義又稱為巨集代換、巨集替換,簡稱"巨集"。
格式:#define 識別符號 字串
其中的識別符號就是所謂的符號常量,也稱為"巨集名"。
預處理(預編譯)工作也叫做巨集:將巨集名替換為字串。
掌握"巨集"概念的關鍵是"換"。一切以換為前提、做任何事情之前先要換,準確理解之前就要"換"。
即在對相關命令或語句的含義和功能作具體分析之前就要換。
2樓:匿名使用者
我繼續回答你的追問:
這個 if 由於後面緊跟了;所以什麼也不會做,只是把exp執行了一遍,而後面的exse我覺得可能是筆誤,應該是else,那麼這個巨集的意思其實就是,當exp結果為非0(即false)時,那麼執行assertion_failure,後面的引數#exp,誠如前面的解答是exp的字元化,而_file_ _base_file_ _line_也都是巨集,是在c或c++基本庫檔案中定義好的,分別當前檔名,主程式檔名和該行**的行數
最後友情提醒下,巨集定義尤其是涉及邏輯**的,最好放在dowhile(0)裡面,這樣可以保證其在大多數條件下都可以正常的執行
3樓:金色潛鳥
行末的反斜槓,表示續行符,也就是說下一行於本行應連成一行閱讀。
這句定義 後面語句中 所有的
assert(exp)
用if (exp);
exse assertion_failure(#exp, _file_, _base_file_, _line_)
替代。其中 exp 是 表示式。
#exp 是 「字串化」 的 exp. ( 例如,當 exp 是 xyz 時,#exp 是 "xyz").
c語言巨集定義計算問題,C語言巨集定義計算問題
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...
關於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提供的三種預處理功能的其中一種,這三種預處理包括 巨集定義 檔案包含 條件編譯 編輯本段1.不帶引數的巨集定義 巨集定義又稱為巨集代換 巨集替換,簡稱 巨集 格式 define 識別符號 字串 其中的識別符號就是所謂的符號常量,也稱為 巨集名 預處理 預編譯 工作也叫做巨集 將巨...