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