PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] 印出問題
作者:
ooww
(另外一個我)
2021-02-08 16:11:01
開發平台(Platform): (Ex: Win10, Linux, ...)
WIN10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
C COMOILER EXPLORE
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
問題(Question):
為什麼答案是 -3
餵入的資料(Input):
預期的正確結果(Expected Output):
我覺得應該 36
錯誤結果(Wrong Output):
程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔)
補充說明(Supplement):
https://imgur.com/a/PzhmGN5
抱歉 修正一下
-36 改成 36
誠心發問 請教各位神人碼農大大
問題一: 為何a-b 是 5 + 3 - 5 - 3
而不是 5 + 3 -(5 + 3) ?
問題二: 為何計算方式是 5 + 3 - 5 - 3 * 3 - 5 + 3 + 5
而不是(5 + 3 - 5 - 3)*(3 - 5 + 3 + 5) ?
作者: NciscalA
2021-02-08 17:10:00
因為黑板那個範例的 macro 定義裡面沒有括號,所以取代後也不會有括號
作者:
MOONRAKER
(㊣牛鶴鰻毛人)
2021-02-08 17:11:00
macro不是function call 參數不會先計算再傳進去macro就是這樣
作者:
peterbrucele
(DM5)
2021-02-08 18:09:00
macro功用只是單純的文字展開 你想的太複雜了
作者:
Lipraxde
(Lipraxde)
2021-02-08 18:10:00
編譯時下 -E 可以看 preprocessed 做完後的結果-or,這自動選字 Orz
作者:
loveme00835
(髮箍)
2021-02-08 20:12:00
你知道巨集(macro)是什麼東西嗎?# 開頭的是前處理器 (preprocessor) 指令, #include是 include directive, #define 則是定義巨集
https://bit.ly/3ryVARM
"前"處理是在編譯程式碼"以前"做些文字替換等工作;相較執行時期的計算, 能達成的功能有限不會下 command line option.. 你都是開瀏覽器寫程式嗎? = =
作者:
Schottky
(順風相送)
2021-02-09 00:02:00
原 PO 的前一篇是用瀏覽器寫程式沒錯如果有 PC 的話建議可以裝個免費的 Code::Blocks
作者: kaneson (Lance)
2021-02-09 09:56:00
巨集只是文字替換,不會自動生括號
繼續閱讀
Re: [問題] ld 連結 object file
descent
[問題] ld 連結 object file
gn00618777
[問題] 求c語言教學手冊(第四版) 光碟
zzzzz99
[問題] 想要修改這個open source需要甚麼知識
bedroom0204
[問題] 印出什麼
ooww
[問題] C++ z3 solver 問題
chiya0219
[問題] makefile phony問題
anoymouse
[問題] 資料序列化處理 in C
windtodream
[問題] malloc 記憶體長度的問題
gowrite
[問題] Include header 檔案問題
skyconquer
Links
booklink
Contact Us: admin [ a t ] ucptt.com