当前位置: 首页 > article >正文

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;
}


http://www.kler.cn/news/363092.html

相关文章:

  • 项目提测质量不高导致延期何解?
  • 如何为自己的跨境网站添加多国语言翻译功能及推荐起尔网定制与插件开发
  • 前端技巧第一期
  • 【Android】使用 Compose 自定义 View 实现从 0 ~ 1 仿 EChat 柱状图
  • Springboot 的手动配置操作讲解
  • Flutter仿京东商城APP底部导航实现
  • django教育网站-计算机设计毕业源码89335
  • 一小时快速入门Android GPU Inspector
  • 并发面试题-谈谈你对AQS的理解
  • AI人工智能改变我们的学习和生活
  • GoFly快速开发框架集成ZincSearch全文搜索引擎-ZincSearch是ElasticSearch轻量级替代搜索引擎
  • 电商商品详情的“速食攻略”:快速利用API接口的幽默指南
  • 力扣每日一题3185. 构成整天的下标对数目 II
  • 什么是分库分表?为什么要分库分表?什么时候需要分库分表?怎么样拆分?(数据库分库分表详解)
  • 从0到1学习node.js(express模块)
  • Nginx+Tomcat 动静分离
  • NFC读写器web插件如果引用js文件
  • leetcode动态规划(十三)-目标和
  • 蓝牙资讯|iOS 18.1 正式版下周推送,AirPods Pro 2耳机将带来助听器功能
  • 分析软件工具——MATLAB综合实验(一)系统环境与运算基础
  • 笔记本使用虚拟机,使用Ubuntu打开摄像头
  • STM32传感器模块编程实践(十) 2.4G NRF24L01通信模块简介及驱动源码
  • elementUi el-table 表头高度异常问题
  • 使用openstack的救援功能对受损的oula系统云主机进行救援
  • word表格问题
  • MFC工控项目实例二十六创建数据库