)
MISRA C:2012 詳解 · 專欄05:高級主題(第 19~22 章)覆蓋第 19~22 章共34 條規(guī)則:重疊存儲、預(yù)處理指令、標準庫、資源管理。這是 MISRA 的收尾篇,也是最「接地氣」的一篇——預(yù)處理宏的坑、標準庫的雷、資源的債,都是真實項目里流過的血。第 19 章 · 重疊存儲(Overlapping Storage)內(nèi)存重疊是memcpy/結(jié)構(gòu)體賦值里的「隱形殺手」。這一章兩條規(guī)則,第一條還是 Mandatory。Rule 19.1 對象不得被賦值或復(fù)制到與其重疊的對象等級:強制(Mandatory) |可判定:Undecidable |cppcheck:?? 需人工審查規(guī)則:不能把對象賦值/復(fù)制到與自身內(nèi)存重疊的目標(重疊復(fù)制必須用memmove)。為什么:memcpy不保證重疊安全,重疊時結(jié)果是未定義的;而「重疊」往往由指針