size_t 从何而来,头文件里有定义吗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!高手指路啊!

完美芯片 2008-10-13 09:53:45
程序里不用包括头文件就可以直接使用size_t,到底是为什么?
...全文
12500 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
清钟沁桐 2011-04-08
  • 打赏
  • 举报
回复
#include <stddef.h>
annhoo2011 2011-02-22
  • 打赏
  • 举报
回复
需要回复,参看,谢谢。
帅得不敢出门 2008-10-14
  • 打赏
  • 举报
回复
我的是linux下的gcc用的头
帅得不敢出门 2008-10-14
  • 打赏
  • 举报
回复
stddef.h

/* __size_t is a typedef on FreeBSD 5!, must not trash it. */
#else
#define __size_t
#endif
#ifndef __SIZE_TYPE__
#define __SIZE_TYPE__ long unsigned int
#endif
#if !(defined (__GNUG__) && defined (size_t))
typedef __SIZE_TYPE__ size_t;
#ifdef __BEOS__
typedef long ssize_t;

cstddef


#include <stddef.h>

namespace std
{
using ::ptrdiff_t;
using ::size_t;
}

#endif
Big鹏 2008-10-14
  • 打赏
  • 举报
回复 1
谁而告诉我为什么要定义typedef unsigned int size_t;
定义的这个size_t有什么用,书上说为了可移植,不懂,谁而详细说明一下

因为unsigned int随着编译平台的不同所占的字节数可能会不同。比如:TC:2字节,VC:4字节,GCC下:4字节。
为适应各自的平台,所以这样定义,否则,将其定义为占2个字节或是4个字节都是不合适的。
wiler 2008-10-14
  • 打赏
  • 举报
回复
一般在 sys/types.h 里定义
xadream 2008-10-13
  • 打赏
  • 举报
回复 1
百度知道
kiffa 2008-10-13
  • 打赏
  • 举报
回复 1
确实,百度GOOGLE答案一大堆。
  • 打赏
  • 举报
回复
晕! lZ发帖前自己先找下有没有这方面的资料 仅仅一个size_t的问题就发了2个帖子问
oyyz1983 2008-10-13
  • 打赏
  • 举报
回复
查找!
arong1234 2008-10-13
  • 打赏
  • 举报
回复
unsigned int随着编译平台不同,其长度可能不一样,而size_t则希望保持不变。当换了平台之后,只需要重新定义size_t到新的类型,就可以不修改任何库就可以使用
jieao111 2008-10-13
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 arong1234 的回复:]
应该是间接包含了吧。VC/gcc似乎不做这种隐含包含的事情,因为TC太老了,那时只有DOS,所有的操作都需要stdio,现在可不是这样

引用 4 楼 chlaws 的回复:
这好比就是用TC不用加stdio.h 其实默认是把这头文件包含进去了 我想这是一样的道理
[/Quote]同意间接包含
完美芯片 2008-10-13
  • 打赏
  • 举报
回复
谁而告诉我为什么要定义typedef unsigned int size_t;
定义的这个size_t有什么用,书上说为了可移植,不懂,谁而详细说明一下!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!谢谢
arong1234 2008-10-13
  • 打赏
  • 举报
回复
你检查了stdio.h自己包含的头文件没有?
完美芯片 2008-10-13
  • 打赏
  • 举报
回复 1
可我在linux下/usr/include/stdio.h里没找到关于size_t的定义
frank_ll 2008-10-13
  • 打赏
  • 举报
回复
估计默认包含了吧,
难道楼主用了VC的stdafx.h?
arong1234 2008-10-13
  • 打赏
  • 举报
回复
应该是间接包含了吧。VC/gcc似乎不做这种隐含包含的事情,因为TC太老了,那时只有DOS,所有的操作都需要stdio,现在可不是这样

[Quote=引用 4 楼 chlaws 的回复:]
这好比就是用TC不用加stdio.h 其实默认是把这头文件包含进去了 我想这是一样的道理
[/Quote]
chlaws 2008-10-13
  • 打赏
  • 举报
回复
这好比就是用TC不用加stdio.h 其实默认是把这头文件包含进去了 我想这是一样的道理
wangdeqie 2008-10-13
  • 打赏
  • 举报
回复

//stdio.h
typedef unsigned int size_t;
zclever 2008-10-13
  • 打赏
  • 举报
回复
size_t 实际上就是unsigned int.标准里typedef的
加载更多回复(1)

70,024

社区成员

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

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