私のデフォルトのcharタイプは、gccオプション(-funsigned-char gcc)で設定されている「unsignedchar」です。したがって、コードで「unsigned char」が必要な場合は、間違いなく「char」を使用できます。しかし、(char *)と(unsignedchar*またはsignedchar*)の間の変換について警告が表示されます:
"error: pointer targets in passing argument 1 of 'test2' differ in signedness"
。
unsigned char*変数をchar*に渡すときの警告を回避するにはどうすればよいですか(私のシステムには、コンパイラオプションで設定されたデフォルトのunsigned charがあることを知っています)?
static void test2(char* a) //char is unsigned by deafult as set by -funsigned-char gcc option
{
}
void test1(void)
{
// This passes, but if i change it to unsigned char (or 'signed char') it fails
// I dont want it to fail for "unsigned char c" since default char is unsigned.
char c = 65;
test2(&c);
}