一个字节的缓冲区应该是char或unsigned char还是一个char缓冲区? C和C ++之间的任何区别?
谢谢。
Should a buffer of bytes be signed char or unsigned char or simply a char buffer? Any differences between C and C++?
Thanks.
最满意答案
一个字节的缓冲区应该是char或unsigned char还是一个char缓冲区? C和C ++之间的任何区别?
语言对待它的微小区别。 公约对待它的巨大差异。
char = ASCII(或UTF-8,但签名方式存在) 文本数据 unsigned char = byte signed char =很少使用还有代码依赖于这样的区别。 只是一两个星期前,我遇到了一个错误,JPEG数据被破坏,因为它被传递给我们的Base64编码功能的char*版本 - “帮助”替换了所有无效的UTF-8“string”。 更改为BYTE aka unsigned char是所有需要解决它。
Should a buffer of bytes be signed char or unsigned char or simply a char buffer? Any differences between C and C++?
A minor difference in how the language treats it. A huge difference in how convention treats it.
char = ASCII (or UTF-8, but the signedness gets in the way there) textual data unsigned char = byte signed char = rarely usedAnd there is code that relies on such a distinction. Just a week or two ago I encountered a bug where JPEG data was getting corrupted because it was being passed to the char* version of our Base64 encode function — which "helpfully" replaced all the invalid UTF-8 in the "string". Changing to BYTE aka unsigned char was all it took to fix it.
更多推荐
发布评论