2 c warnings pointers compiler-warnings mplab-c18
我正在使用Microchip的C18编译器编译我的C代码.我[2054] suspicious pointer conversion在这段代码中收到警告:
unsigned char ENC_MAADR1 = 0x65;
unsigned char ENC_ReadRegister(unsigned char address);
// ...
puts(ENC_ReadRegister(ENC_MAADR1)); // <-- warning on this line
Run Code Online (Sandbox Code Playgroud)
这个警告意味着什么,我该如何解决?
puts需要const char*,你正在交付unsigned char,甚至不是指针.
从这里:
#include <stdio.h>
int puts(const char *s);
Run Code Online (Sandbox Code Playgroud)
该puts()函数将指向的字符串写入s标准输出流stdout,并将换行符附加到输出.不写入字符串的终止空字符.
请putc(int c, FILE* stream)改用...请参阅此处以供参考.
谢谢你的注释!!