把变量定义在循环外,能否减少反复申请栈空间? 不能

不能

C99及后面的标准实现变量就近定义时,实际上没有规定栈空间要在就近定义的地方来扩缩,典型的gcc实现栈空间的占用还是在函数入口完成的

总结

有没有循环对函数压栈没有任何影响。

就算变量定义在循环里面,压栈这个新函数的时候,也会给循环里面的变量预留对应的空间。

如果动态搞的话,结社循环里有嵌套,有break continue跳转的时候也要加对应数量的恢复栈操作,复杂度过大

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容