请问这个语句怎么改写,提示 将 NULL 转换到非指针类型‘char’

2004v2004 2021-06-17 11:31:20

在虚拟机下可以运行 ,在arm下编译就提示 “将 NULL 转换到非指针类型‘char’   不让这么写了,请指教

 

#ifndef __CMD_H__
#define __CMD_H__

#include <pthread.h>
#include <string.h>
#include <cstring>
#include <fstream>
#include <unistd.h>
#define MAX_CMD_NAME_LENGTH 30 // 最大命令名长度,
#define MAX_CMDS_COUNT 100      // 最大命令数,
typedef void (*handler)(void); // 命令操作函数指针类型
/* 命令结构体类型 */
typedef struct cmd
{
    char cmd_name[MAX_CMD_NAME_LENGTH + 1]; // 命令名
    handler cmd_operate;                    // 命令操作函数
} CMD;

/* 命令列表结构体类型 */
typedef struct cmds
{
    CMD cmds[MAX_CMDS_COUNT]; // 列表内容
    int num;                  // 列表长度
} CMDS;


static CMDS commands = {NULL,NULL}; // 全局命令列表,保存已注册命令集合
#define ARRAY_SIZE(x) (sizeof(x) / (sizeof((x)[0])))
void register_cmds(CMD reg_cmds[], int length);
void match_cmd(char *str);

#endif

 

红色部分  怎么改写

...全文
827 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
2004v2004 2021-06-17
  • 打赏
  • 举报
回复

谢谢了  

自信男孩 2021-06-17
  • 打赏
  • 举报
回复

全局变量(或静态变量)不手动初始化,系统会默认给初始化的。即static CMDS commands;这样定义,系统会给初始化的,默认是0和NULL,字符串是'\0'

70,039

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧