将函数返回值分类

    技术2022-05-13  5

    在C语言中,往往通过函数的返回值来判断函数的调用情况。例如,返回0,表示调用成功;返回-1,表示调用失败(函数执行失败,并且用errno来表示出错原因).也有一些函数使用多个值来表示函数的调用情况,例如,返回0,表示调用成功;返回1,表示调用失败,错误原因是文件打开失败;返回2,表示调用失败,错误原因是内存不足;如此等等.

    下面介绍的这个方法是:将函数的返回值定义为一个枚举类型.

    例如,在Cherokee的source中,有:

    typedef enum { ret_no_sys = -4, ret_nomem = -3, ret_deny = -2, ret_error = -1, ret_ok = 0, ret_eof = 1, ret_eof_have_data = 2, ret_not_found = 3, ret_file_not_found = 4, ret_eagain = 5, ret_ok_and_sent = 6 } ret_t;

    可以看出,返回值被限定在-4~6的取值范围之内,并且每个取值的意义一目了然.

    调用处可以这样写了:

    ret = check_worker_version (argv[0]); if (ret != ret_ok) exit (EXIT_ERROR);


    最新回复(0)