閑談:C語言中的成對編碼與規範編碼(上)

來源:互聯網
上載者:User
    編碼的習慣和編碼的規範在編程中佔據了重要地位。良好的編碼習慣有利於降低代碼的出錯率,也便於代碼的調試,規範編碼則增強了代碼的可讀性,也使代碼的交流成為可能。本篇將詳細介紹成對編碼的方法,規範編碼留在下篇講述。

    成對編碼的基本思想極為簡單,就是——“成對”。成對現象在C語言中是極為普遍的,任何一個函數,其函數體都是以成對的"{}"所括起來的。從這一點我們可以給出成對編碼的基本方法,下面以編寫一個“Hello World”程式為例講述該方法。

    編碼的第一步:
        int    main(void)
        {
        }
    打一個"{"斷行符號後立即就打一個"}"。

    編碼的第二步:
        int    main(void)
        {
            printf("Hello World!");
            getch();
            return 0;
        }
    將游標移至上一行末打一斷行符號,再按下Tab鍵,之後就可以在兩個括弧之間插入代碼。

    要注意的是,我們在第一步就將函數的括弧成對的給出,我們打了一個"{",就應該毫不猶豫地給出一個"}",這就是成對編碼。在第二步,我們將游標移至兩個大括弧之間,在中間插入代碼。此點極為重要,我們徹底的摒棄了落後的線性編碼(即一個字元一個字元的往下寫),而是跳躍性的非線性編碼。此法極妙,在編碼的任何一步,我們都能保證代碼是可通過編譯的,可運行、可調試。至少也能保證不會出現少打一個或多個"}"的編譯錯誤。

    此基本方法也可應用於任何一個使用"{}"的語句,如if、for等語句,例如以下代碼:

    第一步:
        int    main()
        {
            int i;
            for(i=0;i<10;i++)
                {
                }
        }

    第二步:
        int    main()
        {
            int i;
            for(i=0;i<10;i++)
                {
                printf("成對編碼是個好方法!/n");
                }
        }

    第三步:
        int    main()
        {
            int i;
            for(i=0;i<10;i++)
                {
                printf("成對編碼是個好方法!/n");
                }
            getch();
            return 0;
        }

    成對編碼的另一個推廣就是,對malloc()和free()也可以看作是成對的。在編碼是,我們如果寫了一個malloc();語句,就應該毫不猶豫地緊接著寫一個free();語句,剩下的就是在裡昂句之間插入代碼,這樣就能保證不會出現記憶體流失的問題。

    成對編碼還可以推廣至任何一個類似於malloc()和free()這樣成對的語句。例如在使用一個鏈表時,我通常是成對地寫出InitList()和DestroyList()兩個語句,然後再將對鏈表的操作插入到兩句之間。

    大家很快就能體會到成對編碼的優越性,相對於線性編碼,成對編碼幾乎不會出現代碼的編譯錯誤,代碼在任何時候都是可運行、可調試的。本人在編寫的眾多程式中全部採用成對編碼法,幾乎沒有出現編譯錯誤,真是很爽。

    目前的許多C語言教材都僅注重講解文法等內容而對編碼方法幾乎是隻字不提,我們在閱讀代碼時,也使習慣於從上到下線性閱讀,養成了線性編碼習慣。而成對編碼作為一種高效的編碼方法,我們有必要認真學習和掌握。同時在閱讀代碼時也可以採用成對閱讀的方法,對閱讀和理解代碼和市很有協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.