Nik*_*s R 0 c unsigned short char character-encoding
正如标题所说,我有两个问题.
编辑:为了澄清,他们实际上char并没有使用和short,他们确保它们是特定typedef的8位和16位.那么实际类型称为UInt8和UInt16.
1.问题
iTunes的SDK使用unsigned short*其中一个字符串是必要的.使用它而不是char*/ unsigned char*?有什么好处?如何将其转换为char*,以及使用此类型时有何不同?
2.问题
我只看到char*必须存储字符串的时候.我什么时候应该使用unsigned char*,或者它没有任何区别?
unsigned short数组可以与宽字符串一起使用 - 例如,如果你有UTF-16编码的文本 - 虽然我希望wchar_t在那些情况下看到.但他们可能有他们的理由,比如在MacOS和Windows之间兼容.(如果我的来源是正确的,MacOS' wchar_t是32位,而Windows'是16位.)
您可以通过调用相应的库函数在两种类型的字符串之间进行转换.哪种功能合适取决于具体情况.SDK不附带一个吗?
而char不是unsigned char,那么,所有的字符串在历史上一直被定义的char,所以切换到unsigned char会引入不兼容性.
(切换到signed char也会导致不兼容,但不知道多少......)
编辑现在问题已被编辑,让我说在输入答案之前我没有看到编辑.但是,UInt16由于上述原因,是比wchar_t更好地表示16位实体.
| 归档时间: |
|
| 查看次数: |
1101 次 |
| 最近记录: |