ZBLOG

用printf打印枚举值,结果用retrun 返回字符串:typedef enum _Nome_Rule_Action { NOME_ACTION_NONE = 0, NOME_ACTION_KEEP_ERR_LEVEL = 1

要实现一个函数,该函数使用 printf 打印枚举值,并返回对应的字符串表示,我们可以根据给定的 enum 定义来创建一个字符串映射。下面是一个简单的示例代码:

#include <stdio.h>

typedef enum _Nome_Rule_Action {
    NOME_ACTION_NONE = 0,
    NOME_ACTION_KEEP_ERR_LEVEL = 1 << 0,
    NOME_ACTION_CHANGE_ERR_LEVEL = 1 << 1,
    NOME_ACTION_CHANGE_ERR_ATTR = 1 << 2,
    NOME_ACTION_ADD_ERR_ATTR = 1 << 3,
    NOME_ACTION_DEL_ERR_ATTR = 1 << 4,
    NOME_ACTION_IGNORE_EVENT = 1 << 5,
    NOME_ACTION_IGNORE_EVENT_IN_MANUAL = 1 << 6,
    NOME_ACTION_REPORT_EVENT = 1 << 7,

    NOME_ACTION_DELAY_SEND_TO_CLOUD_BY_VEH_STATUS = 1 << 8,

    NOME_ACTION_IGNORE_ERRCODE = 1 << 9,

    NOME_ACTION_IGNORE_ERRCODE_WITH_ERR_LEVEL = 1 << 10,
    NOME_ACTION_REMOVE_ERRCODE_WITH_ERR_LEVEL = 1 << 11,

    NOME_ACTION_SWITCH_VEH_OPERATION_STATE = 1 << 12,
    NOME_ACTION_SET_RECOVER_TRIP_TIME = 1 << 13,
    NOME_ACTION_SET_UOS_REBOOT_TIME = 1 <<14,
    NOME_ACTION_CHANGE_ERR_ATTR_WITH_THRESHOLD = 1 <<15,
    NOME_ACTION_ADD_ERR_ATTR_WITH_THRESHOLD = (1<<16),
    NOME_ACTION_DOWNGRADE_ERR_LEVEL_3 =(1<<17),
    NOME_ACTION_DOWNGRADE_ERR_LEVEL_4 =(1<<18),
    NOME_ACTION_DOWNGRADE_ERR_LEVEL_5 =(1<<19),
} nome_rule_action_t;

const char* nome_action_to_string(nome_rule_action_t action) {
   switch (action) {
        case NOME_ACTION_NONE:
            return "NOME_ACTION_NONE";
        case NOME_ACTION_KEEP_ERR_LEVEL:
            return "NOME_ACTION_KEEP_ERR_LEVEL";
        case NOME_ACTION_CHANGE_ERR_LEVEL:
            return "NOME_ACTION_CHANGE_ERR_LEVEL";
        case NOME_ACTION_CHANGE_ERR_ATTR:
            return "NOME_ACTION_CHANGE_ERR_ATTR";
        case NMEO_ALLOW_ADDITIONAL_ERRORS:
            return "NME_ALLOW_ADDITIONAL_ERRORS"; 
        // Add more cases for other actions...
        
        default:
            return "UNKNOWN ACTION";
   }
}

int main() {
   nome_rule_action_t action = C_ERROR; 
   
   printf("Action value: %d, Action string: %s\n", action, nome_action_to_string(action));

   return0;
}

在这个代码中,我们定义了一个名为 nome_action_to_string 的函数,它接收一个 nome_rule_action_t 类型的枚举值,返回对应的字符串表示。在主函数中,我们打印出该动作的整数值和它对应的字符串。

请注意,你需要添加更多的 case 来覆盖所有枚举值。如果某个枚举值不在列表中,它将返回 "UNKNOWN ACTION"


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://sdn.0voice.com/?id=5661

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?