【发布时间】:2010-07-29 15:54:41
【问题描述】:
我使用的第三方库有很多不同的错误代码。包含文件包含一大堆行,例如:
#define ABC_INVALID_BUFFER_SIZE 101
#define ABC_INVALID_COMMAND 102
等等
在运行时,我在开发应用程序时收到各种错误代码。我想让应用程序在运行时打印出像“错误:ABC_INVALID_COMMAND”这样的消息,而不是打印“错误:102”。
我想要一个允许我使用 map[code] 将数字转换为文本的翻译地图。
所以我正在寻找一种机制,让我在编译时解析包含文件,并将其转换为 map[102] = string("ABC_INVALID_COMMAND")。 我可以使用 awk 脚本来做到这一点,但我想知道是否存在已经存在的机制。我肯定不能成为第一个想要/需要这样做的人吗?我还没有发现明显的东西?
【问题讨论】:
-
我认为您最好(手动)编写一个将代码转换为人类可读错误消息的函数。这可以像返回字符串常量的 switch() 语句一样简单。许多库已经提供了这样的东西(例如,LDAP 的 ldap_err2string());但是,如果您的 3rd 方库没有为您提供它,可能仍然值得花一点时间手动编写代码。
-
1000 条消息,其中大部分我不知道它们是什么意思?
标签: c