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;
}
相关推荐
辞忧九千七7 分钟前
吃透Redis7核心数据结构:从基础用法到实战场景(Python版)
开发语言·数据结构·redis·python
空圆小生9 分钟前
基于 Python+Vue3 的 AI 人脸识别门禁考勤系统
开发语言·人工智能·python
搬砖的小码农_Sky19 分钟前
macOS Sequoia上如何安装Python开发环境?
开发语言·python·macos
人间乄惊鸿客21 分钟前
c++自记录
java·开发语言·c++
csbysj202023 分钟前
MySQL 删除数据表
开发语言
wjs202424 分钟前
R 语言中的数组(Array)
开发语言
蓝影灵24 分钟前
单体改微服务记录
java·开发语言
李少兄26 分钟前
Java 短路求值的优雅实践:用 `&&` 实现安全高效的批量操作控制
java·开发语言
deepin_sir27 分钟前
14 - 面向对象编程
开发语言·python
莫***妞27 分钟前
2026年java后端开发还有未来吗? 就业形式如何?
java·开发语言