• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    華為軟件編程規范和范例

    發布: 2008-4-23 16:04 | 作者: 不詳 | 來源: www.cppblog.com/oosky | 查看: 471次 | 進入軟件測試論壇討論

    領測軟件測試網


    ¹6-5 :在同一項目組應明確規定對接口函數參數的合法性檢查應由函數的調用者負責還是由接口函數本身負責,缺省是由函數調用者負責 
    說明:對于模塊間接口函數的參數的合法性檢查這一問題,往往有兩個極端現象,即:要么是調用者和被調用者對參數均不作合法性檢查,結果就遺漏了合法性檢查這一必要的處理過程,造成問題隱患;要么就是調用者和被調用者均對參數進行合法性檢查,這種情況雖不會造成問題,但產生了冗余代碼,降低了效率。 
    ½6-1 :防止將函數的參數作為工作變量 
    說明:將函數的參數作為工作變量,有可能錯誤地改變參數內容,所以很危險。對必須改變的參數,最好先用局部變量代之,最后再將該局部變量的內容賦給該參數。 
    示例:下函數的實現不太好。 
    void sum_data( unsigned int num, int *data, int *sum )
    {
        unsigned int count;
        *sum = 0;
        for (count = 0; count < num; count++)
        {
            *sum  += data[count]; // sum成了工作變量,不太好。
        }
    }
    若改為如下,則更好些。 
    void sum_data( unsigned int num, int *data, int *sum )
    {
        unsigned int count ;
        int sum_temp;
        sum_temp = 0;
        for (count = 0; count < num; count ++)
        {
            sum_temp  += data[count]; 
        }
        *sum = sum_temp;
    }
    ½6-2 :函數的規模盡量限制在200 行以內 
    說明:不包括注釋和空格行。 
    ½6-3 :一個函數僅完成一件功能 
    ½6-4 :為簡單功能編寫函數 
    說明:雖然為僅用一兩行就可完成的功能去編函數好象沒有必要,但用函數可使功能明確化,增加程序可讀性,亦可方便維護、測試。 
    示例:如下語句的功能不很明顯。 
    value = ( a > b ) ? a : b ;
    改為如下就很清晰了。 
    int max (int a, int b)
    {
        return ((a > b) ? a : b);
    }
    value = max (a, b);
    或改為如下。 
    #define MAX (a, b) (((a) > (b)) ? (a) : (b))
    value = MAX (a, b);
    ½6-5 :不要設計多用途面面俱到的函數 
    說明:多功能集于一身的函數,很可能使函數的理解、測試、維護等變得困難。 
    ½6-6 :函數的功能應該是可以預測的,也就是只要輸入數據相同就應產生同樣的輸出 
    說明:帶有內部“存儲器”的函數的功能可能是不可預測的,因為它的輸出可能取決于內部存儲器(如某標記)的狀態。這樣的函數既不易于理解又不利于測試和維護。在C/C++語言中,函數的static局部變量是函數的內部存儲器,有可能使函數的功能不可預測,然而,當某函數的返回值為指針類型時,則必須是STATIC的局部變量的地址作為返回值,若為AUTO類,則返回為錯針。
    示例:如下函數,其返回值(即功能)是不可預測的。 
    unsigned int integer_sum( unsigned int base )
    {
        unsigned int index;
        static unsigned int sum = 0; // 注意,是static類型的。
                                     // 若改為auto類型,則函數即變為可預測。
        for (index = 1; index <= base; index++)
        {
            sum += index;
        }
        return sum;
    }

    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>