我用a QByteArray
来存储原始二进制数据.为了存储数据,我使用了QByteArray
追加函数.
我喜欢使用无符号字符来表示字节,因为我认为255
它更容易解释-1
.但是,当我尝试将零值字节附加到a时QByteArray
,如下所示:
command.append( (unsigned char) 0x00));
Run Code Online (Sandbox Code Playgroud)
编译器抱怨call of overloaded append(unsigned char) is ambiguous
.据我所知,这是因为零可以解释为空指针,但为什么编译器不将unsigned char视为char,而不是想知道它是否是一个const char*?当然,我会理解编译器是否抱怨command.append(0)
没有任何转换.
这两种重载需要一个类型转换-从一个unsigned char
到char
,其他的unsigned char
到const char *
.编译器不会试图判断哪一个更好,它只是告诉你使它明确.如果一个完全匹配,它将被使用:
command.append( (char) 0x00));
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
965 次 |
最近记录: |