问题描述
我收到以下警告:
/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";