gpt4 book ai didi

C++ constexpr 实现差异

转载 作者:行者123 更新时间:2023-11-27 23:42:57 26 4
gpt4 key购买 nike

<分区>

刚刚了解了constexpr 函数并访问了godbolt 以了解编译器如何优化代码并发现编译器的行为完全不同。

有如下代码:

constexpr int square(int num) {
return num * num;
}

int main() {
int a = square(2);
}

g++icc 编译器计算函数结果并将其分配给一个变量(如我所料),但是 msvcclang 调用函数。

要使用优化,我们应该采取额外的步骤:

constexpr int square(int num) {
return num * num;
}

int main() {
constexpr int c = square(2);
int a = c;
}

这种行为有什么合理的解释吗?

Godbolt 示例链接:https://godbolt.org/z/ez7luu

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