gcc編譯器小知識FAQ(轉)
gcc編譯器小知識FAQ(轉)[@more@]我收集了一些gcc相關的知識,提供給沒時間或者沒興趣瞭解gcc太多細節知識的朋友。但是這些知識確實又是作為一個gcc使用者應該知道的。
Q:gcc的全稱是什麼:
A: gcc 是 gnu compiler collection(gnu 編譯器套裝),它不僅僅只是編譯c語言的編譯器,它提供了對c、物件導向的c(object c), C++, java, Ada 語言的編譯服務。 過去有一段時間,它被成為gnu C compiler是因為它最初的開發目的的確是只提供了c編譯功能,但是現在已經不在是這樣了。
Q:gcc 和g++什麼關係
A:事實上只有一個C++編譯器,那就是g++。g++不僅僅是一個C++前處理器,而是一個實實在在的C++編譯器。由於它的名字 GNU C++ Compiler 也能縮寫成GCC,所以有時候有人叫它gcc也並不錯。而我們通常所說的gcc是一個編譯器套裝,gcc命令只是一個呼叫各個實際編譯器的快捷方式而已。
Q:gcc所支援的C語言規範有哪些
A: 目前主要的C語言規範有c89(c90), c95(94)和c99。C89是最早的C語言規範,於89年提出,90年先由美國國家標準局推出ANSI版本,後來被接納為ISO國際標準 (ISO/IEC 9899:1990),因而有時也稱為c90。 但在94和96年分別對c90進行了兩次錯誤修正,gcc支援的是修正後的c89(90)版本的C語言規範。在95年提出過對90版規範的修訂案,稱為C95或者AMD1。gcc也支援c95規範。最新的一次C規範修訂在99年制定(ISO/IEC 9899:1999),即常稱的C99規範。在2001年對C99的錯誤進行了修正,gcc支援的修正後的c99規範,但是到目前為止,gcc還沒有完成對c99規範的完全支援。
在預設設定下,gcc對c語言進行了一些自己的擴充套件。在不加語言設定引數的情況下,gcc使用c89規範和自己的一些擴充套件。在將來如果gcc完成了對c99的全面支援,可能預設會使用c99規範加gcc自己的擴充套件。
gcc下的語言規範設定:
-std=iso9899:1990,-ansi或-std=c89 (三者完全等同)來指定完全按照c89規範,而禁止gcc對c語言的擴充套件。
-std=iso9899:199409 使用C95規範
-std=c99 或者 -std=iso9899:1999 使用C99規範。
-std=gnu89 使用c89規範加上gcc自己的擴充套件(目前預設)
-std=gnu99 使用c99規範加上gcc自己的擴充套件
Q:gcc的全稱是什麼:
A: gcc 是 gnu compiler collection(gnu 編譯器套裝),它不僅僅只是編譯c語言的編譯器,它提供了對c、物件導向的c(object c), C++, java, Ada 語言的編譯服務。 過去有一段時間,它被成為gnu C compiler是因為它最初的開發目的的確是只提供了c編譯功能,但是現在已經不在是這樣了。
Q:gcc 和g++什麼關係
A:事實上只有一個C++編譯器,那就是g++。g++不僅僅是一個C++前處理器,而是一個實實在在的C++編譯器。由於它的名字 GNU C++ Compiler 也能縮寫成GCC,所以有時候有人叫它gcc也並不錯。而我們通常所說的gcc是一個編譯器套裝,gcc命令只是一個呼叫各個實際編譯器的快捷方式而已。
Q:gcc所支援的C語言規範有哪些
A: 目前主要的C語言規範有c89(c90), c95(94)和c99。C89是最早的C語言規範,於89年提出,90年先由美國國家標準局推出ANSI版本,後來被接納為ISO國際標準 (ISO/IEC 9899:1990),因而有時也稱為c90。 但在94和96年分別對c90進行了兩次錯誤修正,gcc支援的是修正後的c89(90)版本的C語言規範。在95年提出過對90版規範的修訂案,稱為C95或者AMD1。gcc也支援c95規範。最新的一次C規範修訂在99年制定(ISO/IEC 9899:1999),即常稱的C99規範。在2001年對C99的錯誤進行了修正,gcc支援的修正後的c99規範,但是到目前為止,gcc還沒有完成對c99規範的完全支援。
在預設設定下,gcc對c語言進行了一些自己的擴充套件。在不加語言設定引數的情況下,gcc使用c89規範和自己的一些擴充套件。在將來如果gcc完成了對c99的全面支援,可能預設會使用c99規範加gcc自己的擴充套件。
gcc下的語言規範設定:
-std=iso9899:1990,-ansi或-std=c89 (三者完全等同)來指定完全按照c89規範,而禁止gcc對c語言的擴充套件。
-std=iso9899:199409 使用C95規範
-std=c99 或者 -std=iso9899:1999 使用C99規範。
-std=gnu89 使用c89規範加上gcc自己的擴充套件(目前預設)
-std=gnu99 使用c99規範加上gcc自己的擴充套件
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-950191/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 安裝 GCC 編譯器(轉)GC編譯
- gcc 編譯器與 clang 編譯器GC編譯
- FreeBSD中的GNU C編譯器--編譯器GCC(轉)編譯GC
- redhat 6.5 gcc編譯器初識之一RedhatGC編譯
- GCC編譯器的使用GC編譯
- GNU 編譯器家族 GCC 內部探密(轉)編譯GC
- gcc最佳編譯引數(轉)GC編譯
- gcc編譯GC編譯
- 【軟體開發底層知識修煉】五 gcc-C語言編譯器GCC語言編譯
- Linux上安裝GCC編譯器過程(轉)LinuxGC編譯
- GCC編譯器背後的故事GC編譯
- Linux gcc編譯器安裝LinuxGC編譯
- GCC 使用指南及gcc最佳編譯引數(轉)GC編譯
- 開源編譯器 GCC 跨越 5.0,釋出 GCC 5.1編譯GC
- 探索gcc編譯最佳化細節 編譯器最佳化gcc -o3GC編譯
- 編譯器GCC與Clang的異同編譯GC
- GCC編譯選項GC編譯
- GCC 編譯選項GC編譯
- gcc編譯cpp檔案GC編譯
- 用ccache加速你的gcc/g++編譯(轉)GC編譯
- Win32開發知識庫(分類FAQ) (轉)Win32
- GCC 中的編譯器堆疊保護技術GC編譯
- Linux中gcc編譯工具LinuxGC編譯
- linux下的gcc編譯LinuxGC編譯
- gcc 編譯多個原始檔GC編譯
- GCC除錯基礎知識GC除錯
- GCC編譯過程(預處理->編譯->彙編->連結)GC編譯
- 原創 【CentOS Linux 7】實驗4【gcc編譯器】CentOSLinuxGC編譯
- 在aix5.2下面安裝gcc編譯器AIGC編譯
- GCC編譯和連結過程GC編譯
- 儲存_硬碟_小知識_轉硬碟
- Linux使用小知識(轉)Linux
- 程式設計師都應學習程式碼編譯器知識程式設計師編譯
- 每天學點C++知識:不要去做編譯器的工作C++編譯
- gcc常用的編譯選項對程式碼的影響(轉)GC編譯
- linux 改變GCC編譯器的位元組對齊方式LinuxGC編譯
- 乾貨|圖觀™小課堂知識點——場景編輯器
- 記錄一次gcc的編譯GC編譯