CSDN博客

img haiheng

21、goto语句的使用

发表于2004/10/12 0:51:00  990人阅读

分类: [原气弹]研究院


—————————

N年前,软件开发的一代宗师——迪杰斯特拉(Dijkstra)说过:“goto statment is harmful !!”,并建议取消goto语句。因为goto语句不利于程序代码的维护性。

这里我也强烈建议不要使用goto语句,除非下面的这种情况:


    #define FREE(p) if(p) { /
                        free(p); /
                        p = NULL; /
                    }

    main()
    {
        char *fname, *lname, *mname;

        fname = ( char* ) calloc ( 20, sizeof(char) );
        if ( fname == NULL ){
            goto ErrHandle;
        }

        lname = ( char* ) calloc ( 20, sizeof(char) );
        if ( lname == NULL ){
            goto ErrHandle;
        }

        mname = ( char* ) calloc ( 20, sizeof(char) );
        if ( mname == NULL ){
            goto ErrHandle;
        }
       
        ......
    
       
     ErrHandle:
        FREE(fname);
        FREE(lname);
        FREE(mname);
        ReportError(ERR_NO_MEMOEY);
     }

也只有在这种情况下,goto语句会让你的程序更易读,更容易维护。(在用嵌C来对数据库设置游标操作时,或是对数据库建立链接时,也会遇到这种结构)
阅读全文
0 0

相关文章推荐

img
取 消
img