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;

}

上一篇 下一篇

猜你喜欢

热点阅读