gpt4 book ai didi

c - 是否建议在 C 中将可变长度数组 (VLA) 与内联函数一起使用?

转载 作者:太空狗 更新时间:2023-10-29 15:40:03 24 4
gpt4 key购买 nike

由于 VLA 是在堆栈上分配的内存,如果我们内联包含它们的函数,它们会导致任何问题吗?我认为,由于 alloca 的相同行为,即在堆栈上存储对象,编译器避免内联此类函数(?)。

最佳答案

而(非标准的)alloca 函数产生一个对象,其生命周期是调用函数,而 VLA 的生命周期是它被声明的 block 。但是内联与它们中的任何一个都不相关。主体碰巧被内联的函数调用仍然是函数调用,它通过 alloca 获得的对象在语义返回时不复存在,而不是在 cpu 执行 ret 指令或等效指令时不复存在。

关于c - 是否建议在 C 中将可变长度数组 (VLA) 与内联函数一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42169462/

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