为什么我用gcc-arm-none-eabi收到此警告

问题描述

我收到以下警告:

/path/to/project/src/my_main.c:24:36:警告:初始化'const uint8_t *'{aka'const unsigned char *'}与'char *'的指针目标的有符号性[ -Wpointer-Sign]

针对以下行:

const uint8_t* REQUPDATE_WARNING = "{\"id\":\"warning\",\"value\":\"mcu_upd\"}\n";

uint8_t在哪里:

(stdint.h):
#ifndef _UINT8_T_DECLARED
typedef __uint8_t uint8_t ;
#define _UINT8_T_DECLARED

(_default_types.h)
#ifdef __UINT8_TYPE__
typedef __UINT8_TYPE__ __uint8_t;
#else
typedef unsigned __INT8_TYPE__ __uint8_t;
#endif

为什么会收到此警告,如何删除它?

解决方法

字符串文字是字符数组,其衰减为char *

您需要添加演员表以禁止显示警告

const uint8_t* REQUPDATE_WARNING = (uint8_t *)"{\"id\":\"warning\",\"value\":\"mcu_upd\"}\n";

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...