C11标准和C++11标准
1、? ?C語(yǔ)言的C11 標(biāo)準(zhǔn)有哪些改進(jìn)的地方?會(huì)對(duì)各類(lèi)C項(xiàng)目起到哪些幫助?
1. 對(duì)齊處理操作符 alignof,函數(shù) aligned_alloc(),以及 頭文件 <stdalign.h>。
2. _Noreturn 函數(shù)標(biāo)記,類(lèi)似于 gcc 的 __attribute__((noreturn))。
3. _Generic 關(guān)鍵詞,有點(diǎn)兒類(lèi)似于 gcc 的 typeof。
4. 靜態(tài)斷言( static assertions),_Static_assert(),在解釋 #if 和 #error 之后被處理。
5. 刪除了 gets() 函數(shù),C99中已經(jīng)將此函數(shù)被標(biāo)記為過(guò)時(shí),推薦新的替代函數(shù) gets_s()。
6. 新的 fopen() 模式,(“…x”)。類(lèi)似 POSIX 中的 O_CREAT|O_EXCL,在文件鎖中比較常用。
7. 匿名結(jié)構(gòu)體/聯(lián)合體,這個(gè)早已經(jīng)在 gcc 中了,我們并不陌生,定義在 6.7.2.1 p13。
8. 多線程支持,包括:_Thread_local,頭文件 <threads.h>,里面包含線程的創(chuàng)建和管理函數(shù)(比如 thrd_create(),thrd_exit()),mutex (比如 mtx_lock(),mtx_unlock())等等,更多內(nèi)容清參考 7.26 節(jié)。
9. _Atomic類(lèi)型修飾符和 頭文件 <stdatomic.h>,見(jiàn) 7.17 節(jié)。
10. 帶邊界檢查(Bounds-checking)的函數(shù)接口,定義了新的安全的函數(shù),例如 fopen_s(),strcat_s() 等等。更多參考 Annex K。
11. 改進(jìn)的 Unicode 支持,新的頭文件 <uchar.h> 等。
12. 新增 quick_exit() 函數(shù),作為第三種終止程序的方式,當(dāng) exit() 失敗時(shí)可以做最少的清理工作(deinitializition),具體見(jiàn) 7.22.4.7。
13. 創(chuàng)建復(fù)數(shù)的宏, CMPLX()
14. 更多浮點(diǎn)數(shù)處理的宏 (More macros for querying the characteristics of floating point types, concerning subnormal floating point numbers and the number of decimal digits the type is able to store)。
15. struct timespec 成為 time.h 的一部分,以及宏 TIME_UTC,函數(shù) timespec_get()。
這些改進(jìn)的地方對(duì)程序員來(lái)說(shuō)增加了不少的功能,可以減少原來(lái)自己實(shí)現(xiàn)的一些功能代碼。
2、? ?C11 為何不如 C++11 流行?如果說(shuō)微軟對(duì) C 不感興趣,還可以理解。畢竟Windows 上 C++ 的更多。但開(kāi)源社區(qū) C 才是一等公民,為何新標(biāo)準(zhǔn)沒(méi)有成為主流呢?
C++11的改進(jìn):
1.對(duì)C++核心語(yǔ)言的擴(kuò)充
2.核心語(yǔ)言運(yùn)行期的強(qiáng)化(右值引用和 move 語(yǔ)義;泛化的常數(shù)表達(dá)式;對(duì)POD定義的修正)
3.核心語(yǔ)言建構(gòu)期表現(xiàn)的加強(qiáng)(外部模板)
4.核心語(yǔ)言使用性的加強(qiáng)(初始化列表;統(tǒng)一的初始化;類(lèi)型推導(dǎo)[auto關(guān)鍵字];以范圍為基礎(chǔ)的 for 循環(huán);Lambda函數(shù)與表示法;另一種的函數(shù)語(yǔ)法;對(duì)象構(gòu)建的改良;顯式虛函數(shù)重載;空指針;強(qiáng)類(lèi)型枚舉;角括號(hào);顯式類(lèi)型轉(zhuǎn)換;模板的別名;無(wú)限制的unions)
5.核心語(yǔ)言能力的提升(變長(zhǎng)參數(shù)模板;新的字符串字面值;用戶自定義的字面值;多任務(wù)存儲(chǔ)器模型;thread-local的存儲(chǔ)期限;使用或禁用對(duì)象的默認(rèn)函數(shù);long long int 類(lèi)型;靜態(tài)assertion;允許sizeof運(yùn)算符作用在類(lèi)型的數(shù)據(jù)成員上,無(wú)需明確的對(duì)象
6.C++標(biāo)準(zhǔn)程序庫(kù)的變更(標(biāo)準(zhǔn)庫(kù)組件的升級(jí);線程支持;多元組類(lèi)型;散列表;正則表達(dá)式;通用智能指針;可擴(kuò)展的隨機(jī)數(shù)功能;包裝引用;多態(tài)函數(shù)對(duì)象包裝器;用于元編程的類(lèi)型屬性;用于計(jì)算函數(shù)對(duì)象返回類(lèi)型的統(tǒng)一方法)
不管怎么說(shuō),C++是面向?qū)ο蟮木幊陶Z(yǔ)言,在當(dāng)前的大環(huán)境中,面向?qū)ο筮€是一個(gè)主流的開(kāi)發(fā)。雖然說(shuō)C在開(kāi)源社區(qū)是一等公民。但畢竟C的就業(yè)范圍比較小。不如面向?qū)ο笳Z(yǔ)言這么廣泛。
3、? ?最讓C程序員恐懼的C++特性是哪一個(gè)?哪個(gè)C++擁有而C沒(méi)有的feature是你認(rèn)為弊大于利的呢? 或者說(shuō), 哪個(gè)C++有而C沒(méi)有的pitfall是你無(wú)法接受的?
面向?qū)ο蟆?br />
4、? ?C、Scheme、Lua 和 Go 究竟哪個(gè)最簡(jiǎn)單(最易上手/復(fù)雜度最低/最易精通)?
覺(jué)得還是C吧。
?
轉(zhuǎn)自:?https://blog.csdn.net/ztguang/article/details/77488435
總結(jié)
以上是生活随笔為你收集整理的C11标准和C++11标准的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信APP支付开发步骤及要点
- 下一篇: 《C++标准程序库》学习笔记5 — 第七