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