[問題] 印出問題

看板C_and_CPP (C/C++)作者 (選ばれし子どもたち)時間4年前 (2021/02/08 16:11), 4年前編輯推噓3(3015)
留言18則, 7人參與, 4年前最新討論串1/1
開發平台(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) ? -- -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.166.75.241 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1612771864.A.3D6.html ※ 編輯: ooww (218.166.75.241 臺灣), 02/08/2021 16:22:23 https://imgur.com/a/u2pRQ0D 改成這樣就能得到我預期的答案 但還是很納悶原本的怎麼不行 ※ 編輯: ooww (218.166.75.241 臺灣), 02/08/2021 16:26:27

02/08 17:10, 4年前 , 1F
因為黑板那個範例的 macro 定義裡面沒有括號,所以取代
02/08 17:10, 1F

02/08 17:10, 4年前 , 2F
後也不會有括號
02/08 17:10, 2F

02/08 17:11, 4年前 , 3F
macro不是function call 參數不會先計算再傳進去
02/08 17:11, 3F

02/08 17:13, 4年前 , 4F
macro就是這樣
02/08 17:13, 4F

02/08 18:09, 4年前 , 5F
macro功用只是單純的文字展開 你想的太複雜了
02/08 18:09, 5F
拿嚕吼抖 感謝大大

02/08 18:10, 4年前 , 6F
編譯時下 -E 可以看 preprocessed 做完後的結果
02/08 18:10, 6F

02/08 18:11, 4年前 , 7F
-or,這自動選字 Orz
02/08 18:11, 7F
痾...看不太懂怎麼弄 方便大大可以截圖標示一下嗎?

02/08 20:12, 4年前 , 8F
你知道巨集(macro)是什麼東西嗎?
02/08 20:12, 8F
#include< > 跟 #define 就是巨集吧? ※ 編輯: ooww (122.121.119.23 臺灣), 02/08/2021 21:09:53

02/08 21:39, 4年前 , 9F
# 開頭的是前處理器 (preprocessor) 指令, #include
02/08 21:39, 9F

02/08 21:39, 4年前 , 10F
是 include directive, #define 則是定義巨集
02/08 21:39, 10F

02/08 21:39, 4年前 , 11F
02/08 21:39, 11F

02/08 21:45, 4年前 , 12F
"前"處理是在編譯程式碼"以前"做些文字替換等工作;
02/08 21:45, 12F

02/08 21:45, 4年前 , 13F
相較執行時期的計算, 能達成的功能有限
02/08 21:45, 13F

02/08 22:25, 4年前 , 14F
不會下 command line option.. 你都是開瀏覽器寫程式
02/08 22:25, 14F

02/08 22:25, 4年前 , 15F
嗎? = =
02/08 22:25, 15F
痾...對 只是測試講義上例題而已

02/09 00:02, 4年前 , 16F
原 PO 的前一篇是用瀏覽器寫程式沒錯
02/09 00:02, 16F

02/09 00:03, 4年前 , 17F
如果有 PC 的話建議可以裝個免費的 Code::Blocks
02/09 00:03, 17F
感謝建議 ※ 編輯: ooww (1.173.78.26 臺灣), 02/09/2021 01:27:19

02/09 09:56, 4年前 , 18F
巨集只是文字替換,不會自動生括號
02/09 09:56, 18F
文章代碼(AID): #1W8F8OFM (C_and_CPP)
文章代碼(AID): #1W8F8OFM (C_and_CPP)