這本綜合指南探討了C中不確定行為的複雜性,而不僅僅是典型的教科書解釋。 對於經驗豐富的C程序員來說,這是一個深入了解該主題最晦澀的方面的理想之選,是最初計劃以十一部分系列計劃的六個月項目的高潮,但擴展到了十二個。 由Dmitry Sviridkin撰寫,並由Andrey Karpov編輯,該作品定於未來的印刷出版物。
這本書深入研究了各種主題,包括:
-
簡介:定義不確定的行為及其後果;探索狹窄的轉換和隱式類型的轉換。
- 整數和浮點問題:檢查簽名的整數溢出,浮點特點,整數促銷和的細微差別和簽名擴展。
char
>內存管理和參考:- 解決懸空的參考,,基於範圍的循環,自我引用和參考無效。
string_view
>
std::vector
> lambda函數和untability:- 分析lambda函數捕獲列表,元組,意外突變性,隱式參考,使用後使用後使用和終身擴展。 >
>解析和移動語義:- 應對最煩人的解析,非恆定常數,移動語義,> ,並忘記了
std::enable_if_t
語句。
std::void_t
return
運算符和i/o: 涵蓋橢圓機和功能,- ,調試的挑戰,逗號運算符,功能 - 嘗試式塊和零尺寸類型。 >
字符串和智能指針:
operator[]
討論無效的字符串,iostreams
,顯式類型轉換和安全的標準功能傳遞。
>- >循環,遞歸和緩衝液:探索無限循環,停止問題,遞歸,處理和緩衝區溢出。 >
std::shared_ptr
> raii,指針和初始化:- 比較(n)rvo and raii,檢查零指針刪除,靜態初始化順序慘敗,靜態內聯函數,odr侵犯和保留名稱。
>類型,變量和範圍:
noexcept
鑽探瑣碎的類型和ABI,非初始化變量,C 20無界範圍,非虛擬範圍,非虛擬的但虛擬的函數以及vlas。
- >指針,並發和信號:解決無效的指針,陣列的新位置,數據競賽,穆特族僵局,信號安全性和最佳終止障礙實踐。
- 向量,對齊和靜態分析:分析>和,未對齊的參考,對象壽命,靜態分析和未定義的行為,以及結論說明。
- 許可和用法:
- 這項工作可供參考,並具有適當的歸因。 複製或複制需要作者的許可(dmisvrl1@gmail.com)。 禁止商業用途或基於收費的指導。
關於作者的
std::vector::reserve
:std::vector::resize
- dmitry sviridkin: AWS的軟件工程師在高性能軟件開發方面具有豐富的經驗,以及教學C和Linux系統編程的背景。 >>>>
> PVS-Studio項目的共同創始人,在靜態代碼分析和軟件質量方面擁有超過15年的經驗,以及Microsoft MVP獎勵的收件人。
以上是C程序員&#s未定義行為指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!