1、遭人遗弃的goto
高手潜规则:禁用goto
项目经验:程序质量与goto的出现次数成反比
最后的判决:将goto打入冷宫
2、实例分析
goto副作用分析 8-1.c
#include <stdio.h>
#include <malloc.h>
void func(int n)
{
int* p = NULL;
if( n < 0 )
{
goto STATUS;
}
p = (int*)malloc(sizeof(int) * n);
STATUS:
p[0] = n;
free(p);
}
int main()
{
printf("begin...\n");
printf("func(1)\n");
func(1);
printf("func(-1)\n");
func(-1);
printf("end...\n");
return 0;
}
段错误,goto破坏了C语言结构化特性,被遗弃!!!
现代软件工程中禁用goto语句