闲谈:C语言中的成对编码与规范编码(上)

来源:互联网 发布:windows loader 下载 编辑:程序博客网 时间:2024/05/18 00:49
    编码的习惯和编码的规范在编程中占据了重要地位。良好的编码习惯有利于降低代码的出错率,也便于代码的调试,规范编码则增强了代码的可读性,也使代码的交流成为可能。本篇将详细介绍成对编码的方法,规范编码留在下篇讲述。

    成对编码的基本思想极为简单,就是——“成对”。成对现象在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语言教材都仅注重讲解语法等内容而对编码方法几乎是只字不提,我们在阅读代码时,也使习惯于从上到下线性的阅读,养成了线性的编码习惯。而成对编码作为一种高效的编码方法,我们有必要认真学习和掌握。同时在阅读代码时也可以采用成对阅读的方法,对阅读和理解代码和市很有帮助。