我面临一个奇怪的问题,在我的 mac osx lion 上工作(在 xcode4/clang 下,虽然它可以用 gcc4.2 重现)。
看来,我不能为 unsigned char 变量分配高于 127 的任何值。所以,当我分配
v = (unsigned char) 156;
或者,简单地说
std::cout << (unsigned char) 231 << std::endl;
我的程序不产生任何输出。
当我运行这段代码
std::cout << "Unsigned chars range up to " << UCHAR_MAX << std::endl;
我得到以下输出:
无符号字符范围高达 255
但是,当我运行这样的东西时,程序每次都会生成高达一些不同的任意值(例如 c = 114、c = 252 等)的输出。for(unsigned char c = 0; c < CHAR_MAX; c++) std::cout << "c = " << 2*c << std::endl;
将 CHAR_MAX 更改为 UCHAR_MAX,程序再次结束而没有输出:(
提前致谢