为什么Qt使用qint64来代替数据长度和偏移量而不是quint64?

Tam*_*lei 4 qt types

QIODevice并且相关的类qint64用于位置和大小,这是有符号的数据类型.是否需要表达负面价值观?因为否则这种类型的8个字节可用于表示更大的尺寸,不是吗?

Sil*_*ker 6

对于多个函数,返回错误值-1 QIODevice.Qt经常使用返回值的C样式的错误处理,以避免需要支持使用C++异常的编译器或平台.检查这些错误代码非常重要.

手册:

  • QIODevice::writeQIODevice::writeData

    返回实际写入的字节数,如果发生错误,则返回-1.

  • QIODevice::read(char*,qint64)

    如果发生错误,...此函数返回-1.

  • QIODevice::readData(char*,qint64)

    ...并返回读取的字节数,如果发生错误则返回-1.

  • QIODevice::peek(char*,qint64)

    如果发生错误,...此函数返回-1.