Turbo C 2.0是16位的编译器吗?

manutd_1878 2007-08-24 09:00:30
unsigned char a;
sizeof(a);

为什么sizeof(a)是1呢,不是2字节吗?
...全文
346 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongpy 2009-02-25
  • 打赏
  • 举报
回复
是16位的编译器。

sizeof(a)在任何系统上都是1,因为a是字节类型。
coolxp2005 2009-02-25
  • 打赏
  • 举报
回复
sizeof(char)是1, 在任何编译器上都是这样, 因为这是ANSI C规定的.
zzyjsjcom 2007-08-31
  • 打赏
  • 举报
回复
Turboc2.0 只是一个c语言的模拟器而已,模拟16位的 他不管在多少位的计算机下都是16位的
Turboc2.0的全部代码都是用手工完成的 是一个很经典的编译器
liufei1108 2007-08-27
  • 打赏
  • 举报
回复
哎,自己去看看书吧!!
stonesearicky 2007-08-26
  • 打赏
  • 举报
回复
我觉得说Turboc2.0是16位的没错, 同样的环境如果你用VC6.0去看的话sizeof(int)=4
星羽 2007-08-26
  • 打赏
  • 举报
回复
sizeof(int)
iambic 2007-08-26
  • 打赏
  • 举报
回复
看sizoef(int)的值。

另外liufei1108说的不对,长度是由编译器按其所设定的目标机器来决定的。16位编译器假设目标机器是16位的,所以sizeof(int)是2。和运行编译器的机器并无必然关系。
makewater 2007-08-26
  • 打赏
  • 举报
回复
ls的ls应该是 1,4才对吧
heibing578604041 2007-08-26
  • 打赏
  • 举报
回复
楼上正解
liufei1108 2007-08-25
  • 打赏
  • 举报
回复
呵呵,这个好象跟编译器没有什么关系吧,跟你的计算机的字长有关系,如果你的计算机的字长是16位,那sizeof(char)=1,sizeof(int)=2,如果你的计算机字长是32位,那就分别是2、4,明白了吗?
gs0038 2007-08-24
  • 打赏
  • 举报
回复
正解
gfxiang 2007-08-24
  • 打赏
  • 举报
回复
大部分编译器实现char一般都是1个字节吧
你可以试试sizeof(int),如果是2,那就是16位的啦

69,368

社区成员

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

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