C中不同数据类型是怎么通过一个地址来取出相应的字节的

isstack 2017-09-26 09:50:38
比如我申明了一个int型的变量a ,a就是这个变量的首地址,如果是32位机这个地址就是32位的,申明一个char变量b,这个地址也是32位的,它指向的数据时8位的,我疑惑的就是他们怎么通过首地址知道这个数据是32位还是8位的,烦请高手告知。
...全文
1285 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
isstack 2017-09-29
  • 打赏
  • 举报
回复
好的,谢谢大家
isstack 2017-09-28
  • 打赏
  • 举报
回复
那么他们在定义之后,用到的时候是通过啥来知道它到底是多少字节的呢
ppt722 2017-09-28
  • 打赏
  • 举报
回复
C语言属于静态语言, 数据类型都是在编码阶段明确定义的, 在编译阶段编译器根据代码翻译成机器操作码. 如果你学过汇编,就会有更深刻的认识.
9527 2017-09-27
  • 打赏
  • 举报
回复
只靠一个地址,是没法子判断类型的,你在操作数据时,都已经指定了指针类型的
常书 2017-09-27
  • 打赏
  • 举报
回复
定义完int a,char b后,对应的机器码所指的空间为4字节和1字节,比如int会对应eax而char会对应ah
will热爱 2017-09-26
  • 打赏
  • 举报
回复
根据取的数据类型来定吧,
isstack 2017-09-26
  • 打赏
  • 举报
回复
第一次提问,还请大家不吝赐教

1,025

社区成员

发帖
与我相关
我的任务
社区描述
Linux /Unix kernel支持不同的硬件体系,X86, ARM, MIPS, 等等
社区管理员
  • CPU和硬件区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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