解决 debug模式下 的 56 Expression: (unsigned)(c + 1)

解决方法 ,字符变量 c 改为 unsigned char

原因:

char 类型的变量 占用 一个byte , 而一个 byte 可以编码 2的8次方 = 256 个字符
这个是 最初的 anssi编码 很多 国外的 程序就是用的这种字符编码 ,而anssi只用其中的7位来表示128个字符,这对于英文国家来说足够了
是 这对于 中文编码的字符串来说就不能表示了
关于字符编码的 问题这里就不详细说了 ,网上这种blog很多。
很多 非anssi编码的 字符,转换成一个 char类型 会变成负数 ,根据补码的原理,一个负数的二进制如果被当作 整数会是很大的一个值,肯定 >= 256
总之,出现这种情况 就用 unsigned char 来表示一个字符就行了。

具体遇到的问题 ,
htmlcxx debug模式下 出现56 Expression: (unsigned)(c + 1) <= 256
解决方法:
http://www.cnblogs.com/shenlian/archive/2012/12/10/2811931.html
http://blog.csdn.net/schoolers/article/details/6891061
http://my.oschina.net/leeeryan/blog/9914

要注意版本 0.85

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章