C C 標準有哪些?

2022-02-25 20:14:22 字數 2982 閱讀 7546

1. c

時間名稱

標準制定組織

事件1978

k&r標準

k&r《the c programming language》

author: k&r

1989

ansi c / c89

ansi

ansi通過c語言標準

1990

c90iso & iec

iso&iec將c89標準定為c語言國際標準

1994

c94iso & iec

iso&iec發布c89標準修訂版,即c94

1995

c95iso & iec

iso&iec發布c94標準修訂版,即c95

1999

c99iso & iec

iso&iec發布c語言新標準,即c99。這是c語言第二個標準

2011

c11iso & iec

iso&iec發布c語言新標準,即c11。這是c語言第三個標準

c標準庫 實現

1). gnu/linux版實現:glibc.so(注:linux中被重新命名為libc.so。原因:所有linux庫都必須以lib字首打頭)

2). mac和ios實現:

mac中,c標準庫的實現是libsystem(/usr/lib/libsystem.dylib)的一部分;

ios可以使用 ios sdk來訪問標準庫;

3). windows版實現:

在windows上,標準庫的實現一直嚴格限定在 visual studio中,它是微軟官方編譯器。他們通常稱之為c/c++執行時庫(crt),並且它涵蓋了c/c++二者的實現。名為 crtdll.dll。

從 windows 95開始,microsoft開始將其遷移到msvcrt[版本號].dll之上。例:msvcr71.dll

在2023年左右,他們決定將檔名簡化為msvcrt.dll,這導致了 dll混亂。因此從 visual studio 7.0開始,他們切換回每個版本使用單獨的dll了。

visual studio 2015引入了深度 crt 重構。c/c++ 標準庫的實現遷移到乙個新庫, universal c執行時庫(universal crt 或 ucrt),編譯為 ucrtbase.dll。

4). android版實現:

bionic是google為其android作業系統所編寫的c標準庫實現,它直接在底層使用。第三方開發者可以通過android ndk訪問 bionic,android ndk允許開發者使用 c/c++**編寫android應用程式。

2. c++ 

時間名稱

標準制定組織

事件1998

c++ 98 標準

iso & iec

2023年c++標準得到iso和ansi批准。

以後每5年視實際需要更新一次。

2003

c++ 03 標準

iso & iec

2023年通過了c++標準第二版。

2011

c++ 11 標準

iso & iec

2023年發布了c++標準第四版c++ 11,取代現行的c++ 98 和 c++ 03。

此次標準為 c++ 98發布13年來第一次重大修正。

2014

c++ 14 標準

iso & iec

2023年發布了c++標準第四版c++ 14,

是 c++ 11的增量更新。

c++標準庫 實現

1). gnu/linux版實現:libstdc++

2). mac和ios實現:

mac中,mac os < v10.9, libstdc++是預設選項;mac os >= v10.9,使用 libc++(注1:這是llvm專案所引人的 gnu libstdc++ 的替代;注2:llvm是mac官方編譯器框架)

ios可以使用 ios sdk來訪問標準庫;

3). windows版實現:

在windows上,標準庫的實現一直嚴格限定在 visual studio中,它是微軟官方編譯器。他們通常稱之為c/c++執行時庫(crt),並且它涵蓋了c/c++二者的實現。名為 crtdll.dll。

從 windows 95開始,microsoft開始將其遷移到msvcrt[版本號].dll之上。例:msvcr71.dll

在2023年左右,他們決定將檔名簡化為msvcrt.dll,這導致了 dll混亂。因此從 visual studio 7.0開始,他們切換回每個版本使用單獨的dll了。

visual studio 2015引入了深度 crt 重構。c/c++ 標準庫的實現遷移到乙個新庫, universal c執行時庫(universal crt 或 ucrt),編譯為 ucrtbase.dll。

4). android版實現:

對c++標準庫,android ndk提供了很多版本的實現:

libc++。從 lollipop 開始的官方安卓系統和現代 mac os 都將其作為 c++ 標準庫使用。從ndk v17開始,它將成為ndk中唯一可用的 c++ 標準庫實現。

gnustl。libstdc++的別名,這兩者在gnu/linux中同乙個庫。該庫已被棄用,它將在ndk v18中刪除。

stlport。由stlport專案編寫的c++標準庫的第三方實現,自2023年開始一直處於不活躍狀態。與gnustl一樣,stlport將在ndk v18種移除。

補充重點:c++與c的不相容

1. 最常見的差異之一是,c 允許從 void * 隱式轉換到其他指標型別,但c++不允許。

2. 另乙個常見的可移植問題是,c++重新定義了關鍵字,如 new, class,它們在c程式中可以作為識別字(例:變數名)的。

3. 在c標準(c99)中去除了一些不相容之處,也支援了一些c++的特性,如註解,以及在**中混合宣告。不過c99也納入了幾個和c++衝突的特性(如:可變長度陣列、原生複數型別和復合逐字常數)。

若要混用c和c++的**,則所有在c++中呼叫的c**,必須放在 extern 「c」內。

受到CC攻擊有哪些症狀?

當 被cc攻擊時,受到不同型別的攻擊都會有不同的症狀表現,通過對應的症狀,就能大致分辨出攻擊的型別,從而對症下藥防禦攻擊。伺服器能正常連線到就排除了被大流量cc攻擊的可能,這個時候可以檢視下伺服器的任務管理器,檢視伺服器的cpu占用和網路頻寬占用 如果是w3wp.exe程序大量占用cpu,就可以馬上...

商業計畫書的標準有哪些

不同行業的商業計畫書有所不同,同一行業由於專案的差別,使得商業計畫書也有所不同。什麼才是好的商業計畫書呢?一言以概之,能讓投資者心服口服拿出錢的商業計畫書就是好的商業計畫書。固然商業計畫書的寫法有多種,格式有多樣。但是,經過剖析能夠看到一切好的商業計畫書都具有以下一些特性 一 有一套完好的格式 商業...

測試規範包括哪些 鹽霧試驗檢驗標準有哪些?

很多人都在問鹽霧試驗國家標準,鹽霧試驗檢驗標準有哪些?今天我們整理了齊全的鹽霧測試的標準以及適合這些標準的鹽霧箱。一 鹽霧箱介紹 鹽霧箱可以在短時間內重現戶外幾個月或幾年才能發生的腐蝕。q fog鹽霧箱是鹽霧測試常用的鹽霧箱,主要有3個型號 ssp鹽霧箱 cct 鹽霧箱 crh鹽霧箱。ssp機型 用...