gpt4 book ai didi

c++ - 一个空的类会被优化掉吗

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:30:22 26 4
gpt4 key购买 nike

假设我有以下类(class):

class A{ };

然后在我的代码中有一个函数:

A foo(){
A ret;
//Do stuff
return ret;
}

然后我稍后使用该函数......

优化编译器(如 g++)是否会将 foo() 视为 void 函数并跳过实际为空对象分配内存?它可能不会这样做,因为即使空类的大小也为 1。

最佳答案

这是 gcc.godbolt.org 的用例您可以在其中查看生成的汇编代码(我建议您单击着色按钮以查看哪个 C++ 代码对应于哪个汇编代码)。您可以看到即使使用 -O0 也没有生成代码来分配或复制对象。您可以尝试使用其他编译器和优化级别。您可以使用 #define 轻松比较返回 class Avoid 之间的代码。

关于c++ - 一个空的类会被优化掉吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36991330/

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