带有内联函数的const参数

时间:2014-11-29 13:11:28

标签: c parameter-passing const inline-functions

我有一个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会有所帮助,这就是我的意思。

1 个答案:

答案 0 :(得分:1)

const代码中使用的

inline不太可能排除优化,但可能不一定允许更多优化。但如果它适用,那么没有充分的理由不告诉编译器它可以充分利用它可以的信息。

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