他们区别不是很大
char能表示从-127~128(要不就是-128~127)的数,而unsigned char能表示0~255的数,所以通常在位图(256色)中常用un...,而字符的显示用char,因为ascII表示的字符是-127~128(要不就是-128~127),你可以写个小程序试试
char能表示从-127~128(要不就是-128~127)的数,而unsigned char能表示0~255的数,所以通常在位图(256色)中常用un...,而字符的显示用char,因为ascII表示的字符是-127~128(要不就是-128~127),你可以写个小程序试试
char i = 0x90;那么i < 0;
unsign char i = 0x90;那么i > 0;
那么,下面的代码,实际存储的值是一样的:
char ch = 'A';
char ch = (char)65;
BYTE by = (BYTE)65;
BYTE by = (BYTE)'A';但是,编译器对这两者的“解释”是不同的,对char类型来说,最高位如果是1,编译器认为这是负数,而BYTE则不是。也就是说,如果:
char ch = (char)-1;
那么(BYTE)ch == 255结果为TRUE。
那么,下面的代码,实际存储的值是一样的:
char ch = 'A';
char ch = (char)65;
BYTE by = (BYTE)65;
BYTE by = (BYTE)'A';但是,编译器对这两者的“解释”是不同的,对char类型来说,最高位如果是1,编译器认为这是负数,而BYTE则不是。也就是说,如果:
char ch = (char)-1;
那么(BYTE)ch == 255结果为TRUE。