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 に書き込み、出力に改行文字を追加します。文字列の終端の null 文字は書き込まれません。

代わりに使用してくださいputc(int c, FILE* stream)...参照については、ここを参照してください。

注釈ありがとうございます!!

于 2013-04-23T09:16:42.770 に答える