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;
}
相关推荐
Franciz小测测18 分钟前
Python连接RabbitMQ三大方案全解析
开发语言·后端·ruby
代码雕刻家32 分钟前
C语言的左对齐符号-
c语言·开发语言
小肖爱笑不爱笑34 分钟前
2025/11/19 网络编程
java·运维·服务器·开发语言·计算机网络
郑州光合科技余经理1 小时前
开发指南:海外版外卖跑腿系统源码解析与定制
java·开发语言·mysql·spring cloud·uni-app·php·深度优先
星释2 小时前
Rust 练习册 44:Trait 中的同名函数调用
开发语言·后端·rust
fanruitian2 小时前
Java 静态代码块
java·开发语言
lly2024062 小时前
SQL CREATE DATABASE
开发语言
朝九晚五ฺ2 小时前
深入Rust标准库(std):核心能力与实战指南
开发语言·后端·rust
2013编程爱好者2 小时前
Rust变量
开发语言·后端·rust
star learning white2 小时前
xmC语言8
c语言·开发语言·算法