為什麼 C99 標準都推出很長時間了,真正能夠完全支援 C99 的編譯器卻比較少?

時間 2021-05-31 04:46:27

1樓:宅學部落-王利濤

一是很多編譯器不更新了,所以對最新的標準支援不是很好(如Turbo C之類)。

二是C99新標準,很多偏僻的不常使用的特性,實現起來複雜或者說沒必要。畢竟標準是乙個大眾的東西,不同的編譯器呢,在不同的行業裡,可能對標準的某些特性不需要,但是有些新的需求標準裡又沒有提到,編譯器又會在C99標準的基礎上擴充套件一些新的特性。

比如GCC,不斷更新、對C99標準的支援度達到99%。除了支援C99標準外,還進行了自己的各種擴充套件,比如零長度陣列、屬性宣告等。

總之,標準也不是一成不變的,當一些特性,被廣大人民群眾接受的時候,標準也會適宜地更改,吸收一些好的特性新增進標準,如C++標準中的true、FALSE,想不到吧...

至於微軟的編譯器,那是C++編譯器,C++標準是基於ANSI C為基點不斷發展的。C99和C++標準從ANSI C開始就有了分叉。早期C語言教學都使用VC開發環境,讓大家認為VC就是C編譯器的錯覺。

其實VC是C++編譯器,只不過跟C標準有了重合,才被廣泛使用。C99新標準下,嵌入式開發,再用VC系列,然後叫囂其它開發環境不好(C-free、GCC等),就是誤人子弟了。

2樓:曹通獻

原因可能是有些特性實現起來比較難,或者沒有必要,以至於有些平台上不願意投入資源去開發。

似乎部分由於題主你所疑問的這個問題,C11 把 C99 中一些必須的特性改為了可選的特性 (看起來有點像妥協)。畢竟得不到普遍支援總不是什麼好事。

3樓:陳良喬

C99?C11不是都已經有了嗎?

有時候,標準走在編譯器的前面

而有時候,編譯器又走在標準的後面

這就像股指,編譯器始終圍繞著標準上下波動

4樓:pansz

此話怎講?編譯器不是衣服一樣越多越好,靠譜的編譯器有乙個就夠。

主流的 C 語言編譯器都支援 C99,例如 gcc。話說,你似乎很難找出乙個比 gcc 市場占有率更高的 c 語言編譯器。無論是 Windows, Linux, OSX, Unix ,主流的系統說到 C 編譯(並非 C++ 編譯),也就是屈指可數的幾個,而這屈指可數的幾個 C 編譯器都可以支援 C99。

至於 Visual C++ 不支援 C99 ,那因為它是個 C++ 編譯器,而 C++ 編譯器確實沒有支援 C99 的義務,這完全合理。C 跟 C++ 是完全不同的語言,如果乙個人總把 C 跟 C++ 當做差不多的東西,那麼他無論寫 C 程式還是寫 C++ 程式都寫不好,我也絕對不敢跟這樣的人一起共事。

至於 gcc 沒有支援 C99 的全部功能,而僅僅支援了 99% 的功能,這個你可以詳細去看看 gcc 的文件,絕大部分功能已經支援,剩下的那些功能通常都是難以實現並且使用者使用頻率很低的功能。

tml以上文件解釋了 C99 那些功能沒有支援,以及不被支援的原因,我想可以回答樓主的問題。

為什麼我一天睡很長很長時間還是很睏

Cherub 因為你睡了太長時間,少睡點,一天六七個小時睡眠加上午覺的半個小時就足夠了,睡太多對身體也不好的。越睡越想睡,而且全身不舒服,還更容易困。別問,問就是經歷過。 飲冰者 此時要注意了,如果能排除心理 懶癌 的問題,要注意是不是生理出了問題 例如消耗型疾病 肺結核,貧血等 有條件的話,可以去...

為什麼有些高檔的帳篷反而很長時間搭建,對於露營不是很不方便嗎?

wujie自由裝備局 擋風擋雨和快速搭建之間的絕佳平衡 非公園專業快搭帳篷,https 高檔帳篷之所以高階,最重要的理由應該不會是方便搭建,方便搭建應該只能算是加分點。按照重要等級排序應該具有以下兩個特點 防風防雨效果 功能層面 輕量化 重量輕,方便攜帶 高階帳篷之所以高階,在我理解,應該是兼具了以...

為什麼離due還有很長時間,也有能力完成,卻覺得根本來不及了?

黃橙橙 1分鐘.年輕人若有所思地說,我理解,你讓我明白了乙個深刻的事實,即許多事情可以在一分鐘內完成,並且可以改變許多事情。 馬丁路德銀 其實吧,有這個意識很重要的,只是你的情 緒沒有處理好。放平心態不要慌,想通一件事情 無論什麼 事,一步一步有順序的慢慢做就肯定能做成。依你的時間觀念,想通這件事後...