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;
}
相关推荐
4311媒体网14 小时前
帝国CMS网站自定义搭建技巧
服务器·开发语言·前端
布莱克60514 小时前
C++拷贝构造与拷贝赋值运算符的区别详解
开发语言·c++
lhldsg14 小时前
全民健身解决方案:从共享球场到智能运营的技术实践
java·大数据·开发语言·需求分析
归去来?15 小时前
Python 常用优雅写法
开发语言·python
Yyyyyy~15 小时前
【C语言】数据类型和变量【下】
c语言
devilnumber15 小时前
Java 30 组高频技术 / 知识点多角度对比
java·开发语言
何以解忧,唯有..15 小时前
Python 异常处理完全指南:从基础到高级实践
开发语言·前端·python
gugucoding16 小时前
57. 【Java】日志框架:SLF4J与Logback
java·开发语言·logback
此生决int16 小时前
深入理解C++系列(15)——AVL树
开发语言·c++
筱璦16 小时前
PHP+ VUE3机构级股票分仓管理交易系统源码可出
开发语言·php·vue3·量化·股票分仓