- C和C++安全編碼(原書第2版)
- (美)Robert C.Seacord
- 428字
- 2020-10-30 17:56:36
1.4.2 編譯器
編譯器及其相關運行庫的選擇對程序的安全有著重大的影響。本書中的例子主要針對Windows上的Visual C++和Linux上的GCC兩款編譯器,下面對它們稍作介紹。
Visual C++。微軟的Visual C++是Windows平臺上占據優勢地位的C和C++編譯器。Visual C++實際上是一個編譯器產品的家族,其中包括Visual Studio 2012、Visual Studio 2010、Visual Studio 2008、Visual Studio 2005以及更早的版本。這些版本均廣泛使用,它們提供的功能各有不同,包括其提供的安全特性也是如此。大體來說,越新的編譯器版本提供的安全特性就越多、越高級。以Visual Studio 2012為例,包括對C++11標準的改進支持。
GCC。GCC全稱是GNU編譯器集(GNU Compiler Collection),其中包括C、C++、Objective-C、Fortran、Java、Ada,以及這些語言對應的庫。GCC編譯器是Linux平臺上的主流C和C++編譯器。
GCC支持3個版本的C標準:C89、AMD1和C99。默認情況下,GCC遵循ANSI(ISO C89)標準并加上GNU特有的一些擴展。GCC編譯器提供了一個-std標志,該標志允許用戶在編譯C程序時指定希望遵循的標準。目前,GCC編譯器尚不完全支持C99規范,有幾個列出的特性遺失或損壞 [1]。GCC也對C11標準提供有限的、不完整的部分支持。
[1] 詳情參見http://gcc.gnu.org/c99status.html。
推薦閱讀
- Clojure Programming Cookbook
- 實用防銹油配方與制備200例
- WSO2 Developer’s Guide
- 編寫高質量代碼:改善C程序代碼的125個建議
- 學Python也可以這么有趣
- Ext JS 4 Web Application Development Cookbook
- Hands-On Functional Programming with TypeScript
- 硅谷Python工程師面試指南:數據結構、算法與系統設計
- QGIS 2 Cookbook
- C++程序設計教程
- 30天學通C#項目案例開發
- SEO教程:搜索引擎優化入門與進階(第3版)
- 3D Printing Designs:Octopus Pencil Holder
- Java編程指南:語法基礎、面向對象、函數式編程與項目實戰
- Docker on Windows