解決 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

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