是否可以以更方便的方式打印自己定义的 typedef?这是示例:
typedef enum {
On,
Off,
Unknown
} State;
State st;
st=getState();
printf("State is:%??",st);
我想显示“状态为:开 | 关 | 未知”
是否可以以更方便的方式打印自己定义的 typedef?这是示例:
typedef enum {
On,
Off,
Unknown
} State;
State st;
st=getState();
printf("State is:%??",st);
我想显示“状态为:开 | 关 | 未知”
不,但你可以做一个技巧:
typedef enum {
On = '\000 nO',
Off = '\000ffO',
Unknow = '\000knU'
} State;
int main(int argc, const char * argv[])
{
State st;
st = On;
printf("state is %s",(char *)&st);
}
当您指定枚举标签时,您可以分配一个整数值。
像“ABCD”这样的东西是一个多字符常量,产生一个 32 位的值。每个字节都是对应字符的 ASCII 值。
在上面的示例中,我为每个标记分配了一个多字符常量,将其视为字符串而不是整数,从而生成一个 3 个字符的标记。
比较难看。我承认。您被迫使用 3 个字符标签,并且必须将它们颠倒过来(如在 Mac OS X - Intel 上)。
但有效。