Dlaczego standardy C lub C ++ nie definiują jawnie znaków char jako podpisanych lub niepodpisanych?
int main()
{
char c = 0xff;
bool b = 0xff == c;
// Under most C/C++ compilers' default options, b is FALSE!!!
}
Ani standard C ani C ++ nie określa znaku jako podpisanego lub niepodpisanego, jest zdefiniowany w implementacji.
Dlaczego standard C / C ++ nie definiuje jawnie znaku char jako podpisanego lub niepodpisanego, aby uniknąć niebezpiecznych nadużyć, takich jak powyższy kod?