C语言中比较优雅的错误定义

废话不多说,直接上代码

c 复制代码
#include <stdio.h>
#include <stdlib.h>

#define foreach_http_error				\
  _ (401, "401 error")					\
  _ (501, "501 error")

typedef enum
{
#define _(sym,string) HTTP_ERROR_##sym,
	foreach_http_error
#undef _
	HTTP_N_ERROR,
} http_reply_error_t;

static char *http_error_strings[] = {
#define _(sym,string) string,
	foreach_http_error
#undef _
};

const char *get_error(const int code) {
	return http_error_strings[code];
}

int main() {
	const char *err = get_error(HTTP_ERROR_401);
	printf("err string: %s\n", err);
	getchar();
	return 0;
}
相关推荐
a努力。1 分钟前
国家电网Java面试被问:慢查询的优化方案
java·开发语言·面试
Dillon Dong15 分钟前
从C到Simulink: ARM Compiler 5 (RVDS) 为什么simulink 不能使用arm编译
c语言·arm开发·simulink
@小码农16 分钟前
202512 电子学会 Scratch图形化编程等级考试四级真题(附答案)
java·开发语言·算法
ejjdhdjdjdjdjjsl21 分钟前
C#类型转换与异常处理全解析
开发语言·c#
qq_3363139326 分钟前
java基础-IO流(转换流)
java·开发语言·python
小宇的天下27 分钟前
Calibre nmDRC 运行机制与规则文件(13-2)
运维·开发语言
扶苏-su31 分钟前
Java---IO流原理和分类
java·开发语言
于越海38 分钟前
学习小项目:用 Python 自动统计编程课绩点(5.0 制|百分制直算|重修取最高)
开发语言·笔记·python·学习·学习方法
黎雁·泠崖43 分钟前
Java底层探秘进阶:JIT汇编逐行拆解!Java方法栈帧与C语言深度对标
java·c语言·汇编
xingzhemengyou143 分钟前
Python GUI中常用的after
开发语言·python