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;
}
相关推荐
波力海苔夹心脆6752 分钟前
C# StringBuilder 详解:字符串拼接为什么总说要用它?
开发语言·笔记·c#·.net·字符串·stringbuilder·入门教程
Wang's Blog7 分钟前
Java 项目实战: 交友项目 - 今日佳人:需求分析
java·开发语言·交友
老孟说禅10 分钟前
自动化测试入门(一)
开发语言·python
余额瞒着我当琳24 分钟前
C++11,发展历史浅谈,初始化列表和对象初始化,右值引用和移动语义
java·开发语言·c++·算法
学逆向的29 分钟前
C 宏函数
c语言·开发语言·网络安全
Code_Solitude30 分钟前
C语言:指针题型总结
c语言·开发语言
曹牧31 分钟前
Java:`tools.jar`
java·开发语言·jar
wyhwust32 分钟前
程序设计基础-No5课件知识点
c语言
小白旗44 分钟前
PHP 严重漏洞风险提醒:如何排查运行环境并做好安全更新
开发语言·php