gpt4 book ai didi

c - printf 中的参数是否位于内存中?

转载 作者:太空宇宙 更新时间:2023-11-04 00:42:53 25 4
gpt4 key购买 nike

在 c 中,当我写:

printf("结果 %d ",72 & 184);

“72 & 184”是否在内存中获得一个 block (例如 72 占用 4 个字节,184 占用 4 个字节?...)

最佳答案

由于 72 & 184 是一个常量 表达式,您的编译器可能会在编译时评估答案,而不是生成代码在运行时计算相同的结果。

答案恰好是 8,所以语句与:

printf("result %d ", 8);

在这种情况下,编译器可能会生成所谓的立即推送到参数堆栈,其中值 8 直接嵌入到机器指令中。这可能与推送更大的值(例如 12345678)不同,后者对于立即推送来说可能太大,然后可能需要存储在程序内存中。

以上内容完全取决于您编译程序所针对的 CPU 架构,以及编译器的功能和优化设置。

关于c - printf 中的参数是否位于内存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1684464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com