do {break;}while(0);在C语言中的灵活用法
2018-11-07 本文已影响0人
沙卡拉卡轻食吧
func()
{
do
{
...
break;
}while(0);
必须执行的语句;
}
此结构在程序中可以用来代替 return语句,实现更加清晰的逻辑控制
#include <stdio.h>
#include <malloc.h>
int func(int n)
{
int i = 0;
int ret = 0;
int* p = (int*)malloc(sizeof(int) * n);
do
{
if( NULL == p ) break;
if( n < 5 ) break;
if( n > 100) break;
for(i=0; i<n; i++)
{
p[i] = i;
printf("%d\n", p[i]);
}
ret = 1;
}while( 0 );
printf("free(p)\n");
free(p);
return ret;
}
int main()
{
if( func(10) )
{
printf("OK\n");
}
else
{
printf("ERROR\n");
}
return 0;
}