Q
壞括號
1
A
回答
5
第一個版本出現故障,如果你與其他運營商結合起來:
min(a , b) + c
,並轉換爲:
a<b?a:b+c
這是相同的:
a<b?a:(b+c)
這是一個意外給出第一個括號的結果。
第二個版本沒有太大的改進。如果函數或i++
傳遞給宏,它會評估其中一個參數兩次,這可能會導致意外的行爲。
應使用內聯函數來代替這些宏。
相關問題
- 1. 如何破壞括號內的行
- 2. 括號VS大括號
- 3. 括號和大括號
- 4. 括號和括號在javascript
- 5. 大括號VS括號
- 6. vim indentation括號內括號
- 7. 當用戶輸入括號時,Java程序嚇壞了
- 8. 爲什麼Typescript lambda函數被大括號破壞?
- 9. 有方括號的方括號或方括號內
- 10. Xcode匹配成對括號,圓括號和括號
- 11. Java程序來讀取括號,大括號,括號和
- 12. 帶大括號,括號和括號的任務
- 13. 獲取Java程序以讀取括號,括號和大括號
- 14. 括號
- 15. Android NDK損壞包括
- 16. gcc包括命令壞了?
- 17. BigDecimal符號/括號
- 18. 瞭解含括號和括號
- 19. Java中的括號中的括號
- 20. 查找方括號而不是括號
- 21. RSpec'更改':大括號或括號?
- 22. 塊 - 花括號/無花括號?
- 23. 大括號替換大括號
- 24. PHP preg_match_all:括號內的括號標籤
- 25. 括號初始化與括號問題
- 26. 了StyleCop:括號內的花括號
- 27. 查找不平衡括號和括號
- 28. 進去括號/拆分文本/括號
- 29. 只取數字括號內(括號內)
- 30. Escape 2大括號/ Angular JS大括號
兩種形式都不好。正確的做法是int min(int a,int b){return a Lundin
你必須考慮宏不是函數,它們實際上只是替換你定義的文本,所以如果你打算在更復雜的情況下使用它們,正如有人已經指出的那樣,你可能會發現一些問題 –
可能重複[在C中宏需要括號(https://stackoverflow.com/questions/10820340/the-need-for-parentheses-in-macros-in-c) –