可疑指针转换警告

时间:2013-04-23 09:14:46

标签: c pointers warnings compiler-warnings 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

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

1 个答案:

答案 0 :(得分:8)

puts需要const char*,您提供unsigned char,甚至不是指针。

来自here

#include <stdio.h> 

int puts(const char *s); 

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

使用putc(int c, FILE* stream)代替...... 请参阅here以获取参考。

感谢您注释!!