gpt4 book ai didi

带有内联函数的 const 参数

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

我有一个 inline 函数,它根据输入参数进行一些初始化,我想知道我是否应该为参数使用 const 关键字,这会启用编译器做一些更多的优化?例如这个伪代码:

inline void init(ENUM1 e1, ENUM2 e2, bool b1, bool b2, ENUM3 e3)
{
if (b1) { … }

switch (e2) {

}

// And so on…
}

编辑:

关于同一件事的另一个问题。当此函数 init() 被调用时,调用将被替换为该函数内的整个代码,还是仅替换为适合参数的部分。例如,如果 b1 为真,调用将被替换为 if (b1) { … } 还是仅替换为 if 括号中的代码。 switch 也一样吗?

这就是我的意思,如果添加 const 会有帮助的话。

最佳答案

const,无论是否用于内联 代码,都不太可能排除 优化,但不一定允许更多优化。但如果它适用,没有充分的理由不告诉编译器,以便它可以充分利用该信息。

更新:因为即使是内联代码也是在编译时生成的,所以它不能根据任何参数的值进行调整,因为它是未知的。

关于带有内联函数的 const 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27202661/

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