My default char type is “unsigned char” as set in the gcc option (-funsigned-char gcc). So arguably I can use “char” when I need “unsigned char” in the code. But i am getting warning for conversion between (char*) and (unsigned char* or signed char*):
"error: pointer targets in passing argument 1 of 'test2' differ in signedness" .
How can I avoid warning when I pass unsigned char* variable to char* (knowing that my syetem has default unsigned char as set by compiler option)?
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);
}
The switches
-funsigned-charand-fsigned-chardo not refer tochar *.You might use
-Wno-pointer-signto switch off the warning you receive.