c語言標準庫起源與不同

2021-09-03 09:30:27 字數 1085 閱讀 4437

c語言標準庫中有沒有round函式?答案是,可能有,也可能沒有。這取決於你使用的編譯器,更準確地說,是編輯器是否支援c99標準。

讓我們簡單回顧一下c語言標準的歷史:c的第乙個標準是由美國國家標準協會(ansi)發布的。雖然這份文件後來被國際標準化組織(iso)採納並且iso發布的修訂版也被ansi採納了,但名稱ansi c(而不是 iso c)仍被廣泛使用。

c892023年,美國國家標準協會組成了乙個委員會,x3j11,為了創立 c 的一套標準。經過漫長而艱苦的過程,該標準於2023年完成,並在作為ansi x3.159-1989 "programming language c"正式生效。這個版本的語言經常被稱作"ansi c",或有時稱為"c89"(為了區別c99)。

c90在2023年,ansi c標準(帶有一些小改動)被美國國家標準協會採納為iso/iec 9899:1990。這個版本有時候稱為c90。因此,c89c90通常指同一種語言。

c99在ansi的標準確立後,c語言的規範在一段時間內沒有大的變動,然而c++在自己的標準化建立過程中繼續發展壯大。《標準修正案一》在2023年為c語言建立了乙個新標準,但是只修正了一些c89標準中的細節和增加更多更廣得國際字符集支援。不過,這個標準引出了2023年iso 9899:1999的發表。它通常被稱為c99。c99被ansi於2023年3月採用。

雖然c99標準已經確立了十多年,但是卻沒有流行起來。各個公司對c99的支援所表現出來的興趣不同。當gcc和其它一些商業編譯器支援c99的大部分特性的時候,微軟和borland卻似乎對此不感興趣。而且很多人似乎連c99這個標準都沒有聽說過,現實中廣泛使用的c語言標準仍然是c98,ansi c也似乎成為了c98的代名詞。

除了gcc完全相容c99標準以外,目前大部分c編譯器都不支援或者部分支援c99標準。即使是最新的visual c++ 2010也僅支援一小部分c99,更不用說windows 98那個年代發布的visual c++ 6.0了(那時候c99標準都沒有)。既然不支援c99,自然也就沒有c99新增的標準庫函式round。說了那麼多廢話,還是得自己寫乙個。我那麼懶,當然不會自己去寫,到php原始碼中抄了乙份,在ext\standard\math.c檔案中。//**他人

C語言起源

c語言的發明者是丹尼斯.里奇 dennis ritchie 2011年10月12日 北京時間為10月13日 丹尼斯 里奇去世,享年70歲。include int main void 說起來大佬就是大佬,最初也是丹尼斯和ken為了早日玩遊戲而發明了c語言,起源真的很有趣,大家感興趣的可以去了解一下。技...

C語言標準庫

ctype.h是c標準函式庫中的標頭檔案 定義了一批c語言字元 分類函式 c character classification functions 用於測試字元是否屬於特定的字元類別,如字母字元 控制字元等等 ctype.h的c標準庫的標頭檔案中提供的宣告幾個有用的函式測試和字元對映。yiibai....

c語言標準庫

c 標準庫的 assert.h標頭檔案提供了乙個名為 assert 的巨集,它可用於驗證程式做出的假設,並在假設為假時輸出診斷訊息。c 標準庫的 ctype.h 標頭檔案提供了一些函式,可用於測試和對映字元。這些函式接受 int 作為引數,它的值必須是 eof 或表示為乙個無符號字元。如果引數 c ...