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機型 用...