链接:https://www.zhihu.com/question/40192302/answer/103161425
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
如果题主以后读C、C++标准文档的话,会发现这个看似比较怪异的地方:
在“运算符 - sizeof”一节中提及,char类型为最小的长度单元,需保证:
sizeof(unsigned char) == 1
sizeof(char) == 1
而在“类型 - char”一节又规定到:char至少需要有8个二进制位,如此可以包含1个符号位和7位ASCII码。
以当下的眼光看,这种的描述很奇怪。因为直接说一个char为8个二进制位不就好了嘛。
实际上8个二进制位为一个“字节”这种约定俗成的概念出现得很晚,得到普遍认同已经是上世纪80年代后期的事了。很长一段时期内,谈及计算机“位宽”(bit width),只说“字长”(word),而没有现在意义上的“字节”(byte)概念;在7位ASCII码普及(上世纪70年代)以前,软硬件上曾使用过很多6位字符编码(题主可以在维基百科上搜索“6bit character code”这个词条),正由于这个原因,80年代以前大量计算机的位宽是6,而不是8的倍数,比如当年Ken Thompson和Dennis Ritchie使用的PDP-7就是18位的机器。那时,char的实现版本是9位,不是今天广为人知的8位。
现在,C/C++中“char”就是“byte”,成为事实上的标准;就像当年“8个二进制位是一字节”的约定一样。
南来地,北往的,上班的,下岗的,走过路过不要错过!
======================个性签名=====================
之前认为Apple 的iOS 设计的要比 Android 稳定,我错了吗?
下载的许多客户端程序/游戏程序,经常会Crash,是程序写的不好(内存泄漏?刚启动也会吗?)还是iOS本身的不稳定!!!
如果在Android手机中可以简单联接到ddms,就可以查看系统log,很容易看到程序为什么出错,在iPhone中如何得知呢?试试Organizer吧,分析一下Device logs,也许有用.
浙公网安备 33010602011771号