【发布时间】:2012-03-06 21:52:39
【问题描述】:
正如标题所说,我有两个问题。
编辑:澄清一下,他们实际上并没有使用char 和short,他们通过特定的typedefs 确保它们是8 位和16 位的。然后实际类型称为UInt8 和UInt16。
1.问题
iTunes SDK 使用unsigned short*,其中需要一个字符串。用它代替char*/unsigned char*有什么好处?如何将其转换为char*,使用此类型时有何不同?
2。问题
我只看到char* 必须存储字符串。那我什么时候应该使用unsigned char*,还是没有任何区别?
【问题讨论】:
-
short是 2 个字节的类型,而char是 1 个字节的类型。我不知道为什么 SDK 使用short*指向一个字符串。你确定是吗? -
@Eregrith
short不保证是两个字节宽。 -
@Eregrith
typedef UInt16 UniChar;,与UniChar* someString;类似。 -
@NiklasR,你应该告诉我们这是 UniChar,而不仅仅是
unsigned short*。并且应该自己多考虑一下:) -
@NiklasR 那么 UniChar 表示 unicode char,那么对于某些语言,您需要 2 个字节。
标签: c character-encoding char unsigned short