添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
SATURDAY } t_Week;

在程序中定义了变量t_Week vl_Week=SUNDAY;
如果想用printf("The Week is %s".,vl_Week);之类的语句直接输出The Week is SUNDAY.
是做不到的,无论采用%s或%d,或者在vl_Week前加强制类型转换.
有以下几个方法可以实现.
1.使用switch-case进行装换

char * StringDirectionT(t_Week vp_Week)
        switch(vp_Week)
                case SUNDAY : return "SUNDAY";
                case MONDAY  : return "MONDAY";
                case TUESDAY : return "TUESDAY";
                case WEDNESDAY  : return "WEDNESDAY";
                case THURSDAY  : return "THURSDAY";
                case FRIDAY  : return "FRIDAY";
                case SATURDAY  : return "SATURDAY";
                default    : printf("Illegal direction value!\n;

然后用语句printf("The Week is %s \n",StringDirectionT(vl_Week));
2.使用数组

char *a_Week[] = { "SUNDAY", "MONDAY", "TUESDAY","WEDNESDAY","THURSDAY","FRIDAY","FRIDAY","SATURDAY"}; 

然后直接根据vl_Week的值去对应的数组元素

3.使用宏定义

#define enumToStr(WEEEK)  "\""#WEEK"\""

printf("The Week is %s",enumToStr(vl_Week));

每个枚举常量对应一个整形数字,很多时候可以像整形一样使用.但枚举类型也有不方便的地方.比如不能直接输出枚举类型的字符串常量.举例说明.定义了枚举类型:typedef enum { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY} t_Week;在程序中定义了变量t_Week vl_Week=S...
关于枚举枚举的基础概念我这里不再介绍,感兴趣的同学可以查阅另一篇博文C/C++中枚举类型enum使用。这里我主要提一下在调试一个大型程序中遇到日志打印中一个关于枚举输出的小错误。   我们知道枚举分为枚举子和枚举值,就相当于键与值的对应关系。例如下面的枚举变量:enum Example {FIRST,SECOND,THIRD}; // 三个枚举子对应枚举值默认是0,1,2。  那如何输出枚举值和枚
使用枚举类型默认的ToString()方法,往往不能得到我们想要的输出字符串。 如何方便的定义枚举类型中的每个值代表的字符串输出呢? 可以使用DescriptionAttribute, 写上想得到的字符串输出。 enum Direction [Description("Rover is facing to UP (Negtive Y)...
#define MY_S(x) ({MY_LOGD("vicentsss %s",#x); (x);}) //打印枚举名,并返回枚举值 void checkExit(const IMetadata *meta, int tag) checkExit(&(rvResult[i].meta), MY_S(MTK_COLOR_CORRECTION_MODE ));...
说点废话,时间紧的请直接跳过,看后面的实现。 尽管本人很反感 C 语言中的宏定义,特别是滥用宏定义经常会让问题变的扑朔迷离,但是不得不承认,在某些时候,其的确是很好用的,就比如今天的例子。 我们代码中涉及到故障码或者状态机,很多人都会用宏定义或者枚举表示,我个人是比较倾向于后者的,当让是由于其能在编译阶段对重定义等问题的规避。但是呢,C 语言相比于其他的高级语言,对机器的友好更胜过...
https://zhidao.baidu.com/question/2557142.html enum设计出来是为了编写代码方便而使用的,底层并不保存枚举量名称,如果你真需要打印出enum的变量名称出来,可以使用下面的方式: typedef enum }ENUM_SAM_T; 如果直接打印的话,ABC只能打印为%d,0,1,2。如果要打印成字母的话,就需
在 C 语言中输出中文字符串的方法是: 1. 使用 fprintf() 函数,它能够输出到文件中。你可以使用它将字符串输出到屏幕上,方法是将标准输出 stdout 作为它的第一个参数。 fprintf(stdout, "这是一个中文字符串。\n"); 2. 使用 printf() 函数,它是 fprintf() 的简化版本,能够直接输出到屏幕上。 printf("这是一个中文字符串。\n"); 输出中文字符串时,格式对齐的方法是使用占位符。例如,下面的代码可以将一个中文字符串输出到屏幕上,并且使用占位符对齐: printf("%-10s%-10s\n", "中文", "英文"); 在这个例子中,%-10s表示输出一个字符串,并且左对齐,占10个字符的宽度。