ZBLOG

用printf打印,retrun 返回:typedef enum _Nome_Rule_Action { NOME_ACTION_NONE = 0, NOME_ACTION_KEEP_ERR_LEVEL = 1

要使用 printf 打印 nome_rule_action_t 枚举值,你可以创建一个函数,该函数接受枚举值并根据其位掩码打印对应的动作。以下是一个示例代码,演示如何实现这个功能:

#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),
   // Continue with remaining enums if necessary
} nome_rule_action_t;

// 函数:打印规则动作
void print_nome_action(nome_rule_action_t action) {
    printf("Matched Actions: ");
    
   // 检查每个可能的动作,并打印相应的信息
   if(action & NOME_ACTION_KEEP_ERR_LEVEL) printf("NOME_ACTION_KEEP_ERR_LEVEL ");
   if(action & NOME_ACTION_CHANGE_ERR_LEVEL) printf("NOME_ACTION_CHANGE_ERR_LEVEL ");
   if(action & NAMEOACTION_CHANGE_ERR_ATTR) printf("NOMEOACTION_CHANGEERR_ATTR ");
   if(action & NOMEOACTION_ADD ERR ATTR) printf("NOMEMO ADD ERR ATTR ");
   if(action & NOMEOACTION_DEL ERR ATTR) printf("NOMEMO DEL ERR ATTR");
   if(action & NOMEOACTION_IGNORE EVENT ) printf("NOMEMO IGNORE EVENT");
   if(action & NOMEOACTION_IGNORE EVENT IN MANUAL ) printf( "NOMEMO IGNORE EVENT IN MANUAL");
   if(action & NOMEOCTION REPORT EVENT ) printf( "NOIMOMOATION_REPORT_EE");

     // Add other conditions as needed...

// 最后换行
printf("\n");
}

int main() {
     // 示例:打印一些动作组合
     nome_rule_action_t actions_to_test =
        (NOME ACTION_KEEP ERR LEVEL | 
         NAME ACTION CHANGE ER LEVEL |
         NAME ACTION REPORT EVENT);

     print_nome action(actions_to_test);
    
     return0;
}

上述代码的功能:

  • 定义枚举类型: 定义了 nome_rule_action_t 枚举。
  • print_nome_action: 创建了一个函数来检查给定的 action 参数是否包含特定的操作,并在控制台上打印出匹配的操作名称。
  • 主程序: 在 main 函数中,演示如何调用 print_nome_action 来显示组合后的操作。

输出结果示例:

假设你传入的是 (NOME ACTION KEEP ERR LEVEL | NAME ACTION CHANGE ERR LEVEL),那么输出会是:

Matched Actions: 
NOME ACTION_KEEP ERR_LEVEL 
NOMBRE THE THE 

你可以继续扩展这个函数,以涵盖所有可能的枚举值,并确保符合实际需求。


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

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

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

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

联系我们

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

微信号:3007537140

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

关注我们
x

注册

已经有帐号?