我很困惑size_t.我在互联网上搜索过并且提到的size_t是无符号类型,因此它可以表示非负值.
我的第一个问题是,如果它用于表示非负值,为什么我们不使用 unsigned int而不是size_t?
我的第二个问题是:是size_t和unsigned int可互换的?如果不是那么为什么?
谁能给我一个很好的例子size_t和简短的工作?
在64位系统上,sizeof(unsigned long)取决于系统实现的数据模型,例如,它在LLP64(Windows)上为4个字节,在LP64(Linux等)上为8个字节.什么是sizeof(size_t)应该是什么?它是否随数据模型而变化sizeof(long)?如果是这样,怎么样?
参考文献:
现在我正在讨论程序员使用typedef关键字的新类型定义.只要我的学生习惯使用size_t类型(例如使用funciton length()),我必须要求他们稍微努力才能"相信"它是一个整数类型,我认为它会很棒显示noew定义此类型的位置.
所以,我在/ usr/include中已经在ubuntu框中做了很多grep,而我看到的是size_t反过来又是对size_type的重新定义,而这又是对metadata_type的重新定义,这就是目录.找不到最终的"typedef unsigned int metadata_type;".
在/ usr/src我找到了anohter以前的类型叫yy_size_t,...
但是,无论如何我都无法走到链的尽头.
有谁知道在哪里找出最终的定义来检查它是无符号的int(或类似的)?可能我想念我的盒子里的开发包吗?在这种情况下,为什么我能够使用size_t类型编译程序?