2

我正在使用 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

这个警告是什么意思,我该如何解决?

4

1 回答 1

8

puts需要const char*,您正在交付unsigned char,甚至没有指针。

这里

#include <stdio.h> 

int puts(const char *s); 

puts()函数将指向的字符串写入s标准输出流stdout,并将换行符附加到输出。不写入字符串的终止空字符。

改为使用putc(int c, FILE* stream)...请参阅此处以获取参考。

感谢您的注释!

于 2013-04-23T09:16:42.770 回答