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;
}
相关推荐
雁门.113 小时前
qt封装dll及调用
开发语言·qt
小李独爱秋13 小时前
计算机网络经典问题透视:互联网的网络层安全协议族IPsec都包含哪些主要协议?
运维·服务器·开发语言·网络协议·计算机网络·安全
lsx20240613 小时前
CSS 图片廊
开发语言
coderxiaohan13 小时前
【C++】C++11
开发语言·c++
雾岛听蓝13 小时前
C++优选算法 | 双指针篇(一)
开发语言·c++
byzh_rc13 小时前
[微机原理与系统设计-从入门到入土] 微型计算机基础
开发语言·javascript·ecmascript
编程大师哥13 小时前
Java web
java·开发语言·前端
书中藏着宇宙13 小时前
CornerNet的续篇(数据处理与训练)
开发语言·python
你怎么知道我是队长13 小时前
C语言---预处理器
c语言·开发语言·chrome
JAVA+C语言13 小时前
Java ThreadLocal 的原理
java·开发语言·python