我正在寻找有关在C文件中记录退出代码的说明。
例如,我有以下内容:
if( !(new_std = (student*) malloc(sizeof(student))) )
exit(1);
//+1 is for the \0, strlen does not give us that one!
if( !(new_std->name=(char*) malloc(1+sizeof(char)*strlen(name)))){
free(new_std);
exit(1);
}
在我的文件中记录的正确方法是什么,以1号出口表示 内存分配失败?
答案 0 :(得分:2)
没有"正确答案"但我想大多数人都会建议使用常量: 将它们放在任何C文件可以包含的公共头文件中。
<强> exit_codes.h 强>
#define EXIT_SUCCESS 0
#define EXIT_GENERAL_FAILURE 1
#define EXIT_OUT_OF_MEM 2
<强> whatever.c 强>
#include "exit_codes.h"
void *p = malloc(100);
if (!p)
exit(EXIT_OUT_OF_MEM);
答案 1 :(得分:1)
这样做是这样的:
typedef enum exit_code {
SUCCESS = 0,
ALLOCATION_FAILURE = 1,
FOO = 2
} exit_code_t;
exit_code_t my_function(void)
{
//.....
return ALLOCATION_FAILURE;
}
为此目的使用枚举比定义更好,因为: