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;
}
相关推荐
geovindu16 小时前
java:Abstract Factory Pattern
java·开发语言·后端·设计模式·抽象工厂模式·创建型模式
geovindu16 小时前
java: Factory Method Pattern
java·开发语言·后端·设计模式·工厂方法模式·创建型模式
m0_5870989916 小时前
Qt,二进制文件读写建议
开发语言·qt
爱敲代码的小鱼16 小时前
springsecurity:
java·开发语言·数据库
秋田君17 小时前
QT_QT信号与槽机制
开发语言·数据库·qt
辞旧 lekkk17 小时前
【Qt】 系统相关:事件与定时器
开发语言·qt·学习·萌新
Wang's Blog17 小时前
Java框架快速入门: Spring Bean核心配置与实例化详解
java·开发语言·spring
三十岁老牛再出发17 小时前
07.07.每日总结
c语言·windows·python
aaPIXa62217 小时前
C++ TensorRT Edge-LLM 边缘推理框架:从原理到实战
开发语言·c++·edge
阿pin17 小时前
Java随笔-GC收集器工作机制
java·开发语言·jvm·gc