可疑指针转换警告

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)

这个警告意味着什么,我该如何解决?

bas*_*h.d 8

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)改用...请参阅此处以供参考.

谢谢你的注释!!