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;
}
相关推荐
qq_416018725 分钟前
C++与机器学习框架
开发语言·c++·算法
Bert.Cai15 分钟前
Python模块简介
开发语言·python
忘忧记29 分钟前
Fixture详解
开发语言·python
赵谨言30 分钟前
地球磁场干扰噪声减弱声波对抗测量系统研究进展:近十年中英文文献综述
大数据·开发语言·经验分享
jyan_敬言31 分钟前
【算法】高精度算法(加减乘除)
c语言·开发语言·c++·笔记·算法
echome88837 分钟前
Python 装饰器实战:用@syntax 优雅地增强函数功能
开发语言·python
卷Java1 小时前
Python字典:键值对、get()方法、defaultdict,附通讯录实战
开发语言·数据库·python
liuyao_xianhui1 小时前
优选算法_翻转链表_头插法_C++
开发语言·数据结构·c++·算法·leetcode·链表·动态规划
happy_baymax1 小时前
三电平矢量表达式MATLAB实现
开发语言·matlab
xyq20241 小时前
jEasyUI 创建 XP 风格左侧面板
开发语言