新聞中心

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

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

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

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

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

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

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

        工程中不允許包含無(wú)法觸及的代碼

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

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

          enum ec{RED,BLUE,GREEN)col;

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

          {

          //Will always get,here

          }

          else

          {

          //代碼永遠(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)行分析:是否必須使用它、采取的方法是否可行、過(guò)程是否得到了正確的執(zhí)行,并將上述結(jié)果做出記錄。

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


        評(píng)論


        相關(guān)推薦

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

        關(guān)閉
        主站蜘蛛池模板: 盘锦市| 木里| 古交市| 邳州市| 金门县| 哈巴河县| 惠安县| 淮滨县| 什邡市| 桐梓县| 凤城市| 民乐县| 旬邑县| 乐业县| 兴宁市| 太仓市| 会宁县| 阳春市| 长乐市| 改则县| 揭西县| 和田县| 永川市| 房山区| 璧山县| 大埔区| 佛冈县| 子长县| 乌拉特中旗| 奉新县| 金沙县| 通江县| 呼和浩特市| 烟台市| 襄城县| 郁南县| 禹州市| 永新县| 海宁市| 卓资县| 太谷县|