当我想找出streamsize的实际数据类型时,cpp引用说
键入以表示流中的大小和字符数。
它是一个基本有符号整数类型的typedef。
可以转换为/从streamoff转换。
让我感到困惑,其他类型的解释如streamoff,streampos,fpos也是如此。
答案 0 :(得分:2)
术语“整数类型”表示它们是“某种整数类型”,但不一定是int
。 signed
意味着他们既可以是积极的,也可以是消极的。对于大小具有有符号值的原因是streamoff
和类型,它可以是文件中的前向(正向)和向后(负向) - 当您想要重新读取文件中的内容时,你寻找相对于当前位置和负偏移。
当然,尺寸本身不会是负面的。
答案 1 :(得分:0)
积分类型意味着它们可以是int,unsigned int,long,unsigned long等等。它取决于你的机器和编译器。例如,在我的机器中:win7 64,vs2013 win32 Debug。
cout << sizeof(streamsize) << endl;
cout << sizeof(streamoff) << endl;
是8,8.在其他环境中,可能会有所不同。