c - 从数组中打印宏

标签 c arrays macros header-files

#define ________    0x0
#define _______X    0x1
#define ______X_    0x2
#define ______XX    0x3
#define _____X__    0x4

我创建了宏来将几组字符作为整数值存储在 .h 文件中,如上所示,以便使 .h 文件可用于其他文件。

如果我将这个 .h 文件包含在任何其他包含 char 数组的 .c 文件中,例如 ch[] = {________,_______X} 无论如何我可以打印实际的字符集,即ch[0] 为“____”,ch[1] 为“______X”。当我尝试打印时,它会打印相应整数值的 char 值,即 0 和 1。请告诉我可以使用什么命令来打印相同的值。

最佳答案

根据定义,字符是单个字符。因此,打印单个字符如 0x2 永远不会打印多个字符如“_ _ _ _ _ _ X _”。你这样做的方法是创建一个 char * 数组(C 中的字符串是 char *)而不是一个 char 数组。如,

char **mystrings = {"________", "_______X", "______X_", etc.}

然后,你可以使用

printf("%s", mystrings[______X_]);

将打印

______X_

关于c - 从数组中打印宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24275715/

相关文章:

java - 通过从数组中选择来创建排列

我可以使用 C 预处理器有条件地检查宏的值吗?

c++ - 用 C 重写 C++ 类

c - Postgresql用户定义的c函数问题

c - C .lib 文件平台特定吗?

c++ - 这个宏可以转换成一个函数吗?

c - 以下 C 代码的输出是 T T ,为什么不是 t t?

c++ - Arduino 中不需要的符号扩展

javascript - 为什么我们不能通过将长度分配为零来清空 Float32Array() 数组,就像其他普通数组一样?在Javascript中

c - 我在cs50沙箱中混淆了两个程序?