0
A
回答
7
繼續閱讀文檔,特別是the chapter on macros!
對我而言,最大的不同是macros are hygenic。這本書有一個例子,解釋什麼是衛生防止,並且還說:
每個宏擴展發生在一個獨特的「語法上下文」,並且每個變量都標記了它引入它的語法上下文。
它使用這個例子:
例如,這個C程序打印13而不是預期的25
#define FIVE_TIMES(x) 5 * x int main() { printf("%d\n", FIVE_TIMES(2 + 3)); return 0; }
除此之外,鏽病宏
- 可以通過編譯代碼
- 可以在參數被重載計數
- 可以匹配語法圖案像括號或括號或逗號
- 可能要求重複輸入圖案
- 可以遞歸
- 操作在語法級別,而不是文本級別
相關問題
- 1. Rust的`String`和`str`有什麼區別?
- 2. typedef和宏之間有什麼區別?
- 3. Rust中的extern fn和extern「C」fn有什麼區別?
- 4. Rust中的immutable和const變量有什麼區別?
- 5. 在Rust中,println中「{}」和「{:?}」有什麼區別!?
- 6. 函數getAddUrl和getAddToCartUrl有什麼區別?
- 7. Crypt ...和CP ...函數有什麼區別?
- 8. round()和trunc()函數有什麼區別?
- 9. setInformativeText和setText函數有什麼區別?
- 10. $ get和$ find函數有什麼區別?
- 11. NtFsControlFile()和DeviceIoControl()函數有什麼區別?
- 12. 函數和函數()在C#中有什麼區別?
- 13. 在javascript中var函數和函數有什麼區別?
- 14. RegExp的exec()函數和String的match()函數有什麼區別?
- 15. Swift:'Currying'和返回函數的函數有什麼區別?
- 16. 函數參數中的A和A []有什麼區別?
- 17. 有什麼區別`和$(Bash中有什麼區別?
- 18. 這2個宏有什麼區別?
- 19. 函子和「泛型」有什麼區別
- 20. 中有什麼函數參數和參數之間......區別
- 21. Objective-C中的「函數」和「宏」是否有區別?
- 22. 宏和內聯函數在執行速度方面有什麼區別?
- 23. 非純函數和純函數有什麼區別?
- 24. 函數模板和模板函數有什麼區別?
- 25. JavaScript:函數名稱和函數引用有什麼區別?
- 26. 函數調用和函數引用有什麼區別?
- 27. 回調函數和常規函數有什麼區別?
- 28. async.compose函數和underscore.compose函數有什麼區別?
- 29. 線程入口函數和正常函數有什麼區別?
- 30. submit()函數和send()JavaScript函數之間有什麼區別?
我回答了你明顯的問題(C宏和Rust宏的區別),但是你的標題詢問宏和函數。你應該改變你的頭銜。 – Shepmaster