- 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。
推薦閱讀
- TypeScript入門與實戰
- Offer來了:Java面試核心知識點精講(原理篇)
- 假如C語言是我發明的:講給孩子聽的大師編程課
- Highcharts Cookbook
- WordPress 4.0 Site Blueprints(Second Edition)
- Linux C編程:一站式學習
- Learning Concurrency in Kotlin
- Swift 4從零到精通iOS開發
- PHP+MySQL動態網站開發從入門到精通(視頻教學版)
- Flink技術內幕:架構設計與實現原理
- Python Social Media Analytics
- 和孩子一起學編程:用Scratch玩Minecraft我的世界
- Java EE 7 Development with WildFly
- Ubuntu Server Cookbook
- Zend Framework 2 Cookbook