新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > C++在嵌入式應(yīng)用中的安全問題

C++在嵌入式應(yīng)用中的安全問題

作者: 時(shí)間:2011-05-28 來源:網(wǎng)絡(luò) 收藏

  文檔中所有規(guī)則的書寫格式如下:

文檔中所有規(guī)則的書寫格式

  每條規(guī)則之后都有詳細(xì)的解釋,并給出了一些具體的程序語句作為例子。下面分別針對(duì)上述3種規(guī)則類別,進(jìn)行舉例說明。

  規(guī)則0-1-1(強(qiáng)制)工程中不允許包含無法觸及的代碼

工程中不允許包含無法觸及的代碼

  上述例子里,條件判斷中的賦值語句和return語句之后的自增語句都是在任何條件下都無法觸及的死代碼,不允許這樣使用。

  規(guī)則0-1-2 (強(qiáng)制) 工程中不允許含有永遠(yuǎn)不會(huì)被執(zhí)行的路徑

  enum ec{RED,BLUE,GREEN)col;

  if(col=GREEN) //不符合規(guī)則,條件永遠(yuǎn)為真

  {

 ?。疻ill always get,here

  }

  else

  {

 ?。a永遠(yuǎn)不會(huì)到達(dá)這里

  }

  由于枚舉類型有默認(rèn)的初始賦值0,1,2,…,故col永遠(yuǎn)≤GREEN。上述例子中,含有任何條件下都不會(huì)被執(zhí)行的路徑,不允許這樣使用。

  規(guī)則5-2-10(推薦) 自增(++)/自減(--)運(yùn)算符不應(yīng)與表達(dá)式中其他運(yùn)算符混合使用諸如下面的例程將導(dǎo)致理解上的混淆以及結(jié)果的不確定,在程序設(shè)計(jì)時(shí)應(yīng)盡可能避免。

  u8a=++u8b+u8c-; //不符合規(guī)則

  規(guī)則0-4-2 (不容討論) 對(duì)于浮點(diǎn)運(yùn)算(floating-point)算法的使用,必須給出記錄

  的使用浮點(diǎn)算法需要具有較高的數(shù)字分析技能和對(duì)編譯器及硬件對(duì)象的深入了解。因此在使用浮點(diǎn)算法時(shí),必須先進(jìn)行分析:是否必須使用它、采取的方法是否可行、過程是否得到了正確的執(zhí)行,并將上述結(jié)果做出記錄。

linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關(guān)鍵詞: 問題 安全 應(yīng)用 嵌入式

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉