size_t是什么东东?

csoma 2012-09-15 11:24:36
size_t类型是表示sizeof操作符执行结果的无符号整数类型。size_t类型的变量保证具有足够的精度,能够表示一个对象的长度。size_t类型的限制是由SIZE_MAX宏指定的。

------------------------------------------------------------------------------------------------------

问题:
1.size_t是数据类型?

2.“size_t类型是表示sizeof操作符执行结果的无符号整数类型。”
这句话是什么意思?

3.“size_t类型的限制是由SIZE_MAX宏指定的”
在哪个头文件的宏?
...全文
464 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
hnzmdzcm 2012-09-16
  • 打赏
  • 举报
回复
size_t是无符号整形
JiMoKuangXiangQu 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?
[/Quote]

compiler是指编译器.
这位的意思是,size_t并非原始的数据类型(如int, char等),而是由开发环境自己定义的类型,
所以你可以到开发环境的头文件里找到相应定义.
csoma 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;
[/Quote]

compiler是什么扩展名文件?

AnYidan 2012-09-16
  • 打赏
  • 举报
回复
在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;
Alexander 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

引用 9 楼 的回复:

引用 7 楼 的回复:

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?
……
[/Quote]
size_t只是个类型名而非关键字。ANSI C定义的关键字就38个,自己去查
Alexander 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

引用 8 楼 的回复:

引用 7 楼 的回复:

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?
……
[/Quote]
你理解错了,在下不是说size_t的长度不能变,只是C标准里定义的size_t是编译器无关的。在不同的编译器下size_t是一样的,而int长度则可以不同(你不去重定义size_t的前提下)。
csoma 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]

引用 7 楼 的回复:

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?


compiler是指编译……
[/Quote]

不是关键字是什么呢?
csoma 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

引用 7 楼 的回复:

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?


compiler是指编译……
[/Quote]

size_t是自定义类型,它可以是任何类型。当然长度也不一样了。
为什么你说是一样?
Alexander 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?


compiler是指编译器.
这位的意思是,size_……
[/Quote]
另外,size_t不是关键字……
Alexander 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

引用 5 楼 的回复:

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?


compiler是指编译器.
这位的意思是,size_……
[/Quote]
这是考虑到可移植性,在不同的编译环境下,int的长度可能不一样,但size_t的长度却是一样的。
csoma 2012-09-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

引用 4 楼 的回复:
引用 3 楼 的回复:

在你的 compiler 中找找

vs2010

typedef unsigned __int64 size_t;
typedef _W64 unsigned int size_t;


compiler是什么扩展名文件?


compiler是指编译器.
这位的意思是,size_t并非原始的数据类型(如int,……
[/Quote]

size_t是自定义类型?
为什么一定要用这个关键字?用其它不可以?
csoma 2012-09-15
  • 打赏
  • 举报
回复
《C安全编码标准》
第5章 整数

INT01-C 使用rsize_t或size_t类型表示所有表示对象长度的整数值

69,372

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧