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;
}
相关推荐
编程小Y19 小时前
php.ini 的核心作用与全面解析
开发语言·php
曹牧19 小时前
Java:List<Map<String, String>>转换为字符串
java·开发语言·windows
我是一棵无人问荆的小草19 小时前
编码演变史
开发语言·c++
sinat_6020353620 小时前
翁恺 6.3.1逻辑运算-函数
c语言
偶像你挑的噻20 小时前
2.Qt-基础核心以及信号与槽
开发语言·qt
potato_may20 小时前
CC++ 内存管理 —— 程序的“五脏六腑”在哪里?
c语言·开发语言·数据结构·c++·内存·内存管理
饕餮怪程序猿20 小时前
A*算法(C++实现)
开发语言·c++·算法
观音山保我别报错21 小时前
列表,元组,字典
开发语言·python
**蓝桉**21 小时前
数组的执行原理,java程序的执行原理
java·开发语言
waeng_luo21 小时前
[鸿蒙2025领航者闯关] 表单验证与用户输入处理最佳实践
开发语言·前端·鸿蒙·鸿蒙2025领航者闯关·鸿蒙6实战·开发者年度总结