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

如果函数参变是用4个8位的参数好还是4个32位的参数好呢?或4个32位数

万里追牛 2021-01-22 浏览量:501
请教一个问题,C语言函数参变是用4个8位的参数好还是一个32位的参数好?

如果用4个8位,传送参数时可能是4个入栈动作,而32位的是一个动作;
但如果用4个8位函数内部就不需要32位去移位操作,函数简单些
用32位写函数内部需要移位处理;
从占用内存角度来说 4个8位是占用一个32位的空间,两者一样, 这里是这样的吗?我不能肯定;


如果函数参变是用4个8位的参数好还是4个32位的参数好呢?
8位数在32位ARM内核好像是比32位数还要多出移位动作?
这样比较感觉4个 32位更划得来,
但从占用内存角度来说 4个32位占用空间可能比4个8位多;
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个看具体环境,其实大多数时候现代编程环境已经不需要这么注意啦,编译器会自动优化。

    如果极端需要考虑,4个8位和1个32位在大多数情况下可以做到等效,比如8位系统环境和16位以及32为环境中都可以认为是等效的,这时一个共用体形式的数据结构就可以进行合理的处理。在64位环境中则不一定啦,

    • 发布于 2021-01-22
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:3
  • 如果内存以后就用4个32位的,执行效率比4个8位高
    • 发布于2021-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 你看你是不是需要单独读取4个8位的数据呢,或者说这4个8位的数据有没有用,如果有用的话,用union定义是最方便的,两者都可以使用。

    从占用空间的角度,定义4个8位和一个32位就好,为什么非要4个32位呢?

    • 发布于2021-01-22
    • 举报
    • 评论 0
    • 0
    • 0

  • 用一个32位的参数好,因为现在的处理器多是32位对其的
    • 发布于2021-01-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

如果函数参变是用4个8位的参数好还是4个32位的参数好呢?或4个32位数