gpt4 book ai didi

c - 在 C 中显示#define 值

转载 作者:太空宇宙 更新时间:2023-11-04 05:14:28 29 4
gpt4 key购买 nike

我有一系列来自此类库文件头的#defines:

typedef int Lib_error;   

#define LIB_ERROR_A ((Lib_error) 0x0000)
#define LIB_ERROR_D ((Lib_error) 0x0100)
#define LIB_ERROR_F ((Lib_error) 0x0200)
#define LIB_ERROR_K ((Lib_error) 0x0300)
#define LIB_ERROR_O ((Lib_error) 0x0400)
#define LIB_ERROR_P ((Lib_error) 0x0500)
#define LIB_ERROR_R ((Lib_error) 0x0600)
#define LIB_ERROR_X ((Lib_error) 0x0700)
#define LIB_ERROR_Y ((Lib_error) 0x0800)
#define LIB_ERROR_M ((Lib_error) 0x0900)
/* and so on */

有没有什么办法可以打印这些值,例如

uint MyError;
/* printf("Error = %s",MyError); It should print the string LIB_ERROR_F instead of say 0x200 */

我可以为此使用很多 if else,但我想知道是否有更聪明的方法。请注意,无论如何我都无法更改库头文件的内容。

最佳答案

人们似乎对他们有着复杂的感情,但是X-macros是一种可能的解决方案。

但是如果你不能改变标题,那么你唯一的两个选择(AFAIK)是:

  • 手动完成
  • 构建过程中的某种形式的代码生成步骤。在您的情况下,应该可以通过使用 sed 解析头文件来实现(假设您在 Linux 上工作)。

关于c - 在 C 中显示#define 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10915520/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com