• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

基础l问题,X86平台C编译器处理数据长度小于寄存器位数机制

沃尔夫斯堡的羊 2020-05-18 浏览量:387
如题在32bit平台上编写和编译C语言,编译器是如何处理和平台寄存器位数不一致(长度小于32bit)的数据类型,如char(8bit)short int(16bit)?这个机制是什么样的?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个通常情况下都是直接用最小寄存器位数,然后直接屏蔽掉多余位。

    比如16bit的数据 是  X & 0x0000FFFF


    • 发布于 2020-05-18
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:1
  • 它的寄存器也要实现对齐的,一般是只用需要的位,不用的位直接填0.实现位数对齐可以提高其运算效率
    • 发布于2020-05-19
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

基础l问题,X86平台C编译器处理数据长度小于寄存器位数机制