酷GCC內建
回答
GCC提供了許多功能,如編譯器擴展,關閉心靈的頂部和經常使用的我是:
Statement Expressions
Designated Initializers
還有更多的記錄了GCC網站上here。
警告: 然而,使用任何形式的編譯器擴展的渲染你的代碼不可移植在其他的編譯器所以不要在風險中使用它們。
將指定的初始化器看作一個擴展是有點怪異的,它是自C99以來的標準的一部分..(我知道他們這樣說) –
指定的初始值設定項是C語言的一部分,不是擴展名。 –
如果你想的多麼有用gcc extensions可以再GCC hacks in the Linux kernel是一個有趣的選擇,因爲如果它是在Linux內核中使用現實生活中的例子那麼它可能是一個很好的我ndication它有一些真實世界的影響。如前所述,使用擴展程序確實會使您的代碼不可移植,但clang does make an effort to support gcc extensions可能會減輕一些影響。
Linux內核中未涉及的一個擴展是statement expressions,同樣參見Are compund statements (blocks) surrounded by parens expressions in ANSI C?。
本文涵蓋了以下功能:
- 使用typeof
- 範圍擴展,它包括Case Ranges和Designated Initializers
- Zero-length arrays是柔性陣列成員,但類型的發現與一些添加
- 確定呼叫地址使用__builtin_return_addres
- 常量檢測使用摹__builtin_constant_p
- Function Attributes
- 分支預測提示使用__builtin_prefetch
- Variable attributes
- 1. 內建gcc自旋鎖
- 2. 如何創建一個酷酷的外觀照片庫
- 3. 酷酷時的Groovy錯誤
- 4. 使用gcc的內建功能__builtin_add_overflow_p
- 5. 設計酷UITableView
- 6. 酷TagCloud爲jquery
- 7. 酷PostSharp方面
- 8. 構建GCC只
- 9. 學習gcc內部
- 10. gcc是否提供內建讀取大端內存?
- 11. NVCC與AVX支持找不到GCC內建內在
- 12. 酷似CSS3規範
- 13. GCC VS鐺:內嵌在-fPIC
- 14. 推薦gcc內聯函數
- 15. gcc內存中編譯
- 16. MSVC內聯彙編GCC的
- 17. gcc「未內聯」警告
- 18. C++的gcc串內聯
- 19. GCC內聯彙編可變
- 20. C,內聯函數和GCC
- 21. ARM GCC內嵌彙編
- 22. GCC內聯彙編:約束
- 23. GCC內聯ASM保證
- 24. GCC GNU組件內核
- 25. GCC內聯彙編錯誤
- 26. 試圖複製一個很酷的下拉內容
- 27. 酷數量計數器
- 28. WebGL的酷應用程序?
- 29. caroufredsel酷轉盤51四象
- 30. 分享酷CSS3技巧
使用__builtin_prefetch
儘管擴展是壞的,但一些內建函數(與標準名稱相同)非常有用,因爲它們使操作看起來實際上可能很慢/效率低下。 –
您也許會覺得這個問題很有用:http://stackoverflow.com/questions/3375697/useful-gcc-flags-for-c –