【问题标题】:what is the actual type of streamsize,streamoff and other stream related data typestreamsize、streamoff 和其他与流相关的数据类型的实际类型是什么
【发布时间】:2016-06-22 00:13:57
【问题描述】:

当我想找出streamsize的实际数据类型时,cpp参考说

类型以表示流中的大小和字符数。

它是一种基本有符号整数类型的类型定义。

它可以转换成/从streamoff。

搞糊涂了,streamoff、streampos、fpos等其他类型的解释也差不多。

【问题讨论】:

  • 是不是“有符号的整数类型”让你很伤心?
  • 该机器是为 C++03 及更早版本设计的,没有任何保证的 64 位类型,例如实际上,文件偏移量可能大于 32 位限制。
  • 是的,我无法弄清楚有符号整数类型的真正含义。@WhozCraig

标签: c++ stream fstream


【解决方案1】:

术语“整数类型”意味着它们是“某种整数类型”,但不一定是intsigned 表示它们可以是正面的也可以是负面的。大小有符号值的原因是streamoff 和类型,在文件中可以是向前(正)和向后(负) - 因为当你想重新读取文件中的某些内容时,你寻找相对于当前位置和负偏移量。

当然,大小本身不会是负数。

【解决方案2】:

整数类型表示可以是int、unsigned int、long、unsigned long等。这取决于你的机器和编译器。例如,在我的机器上:win7 64,vs2013 win32调试。
的输出cout << sizeof(streamsize) << endl; cout << sizeof(streamoff) << endl; 是8,8。在其他环境下,可能会有所不同。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2014-03-22
    • 2013-05-14
    • 1970-01-01
    • 2015-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多