传递const指针与传递内置类型的值。效率

时间:2013-11-10 18:02:41

标签: c pointers reference const

当我试图找到答案时,我几乎只找到C ++帖子而不是C语言。

对于int,char等内置类型,传值和const指针之间是否存在性能差异?

在传递值时使用const关键字是否仍然是良好的编程习惯?

int PassByValue(int value)
{
    return value / 2;
}

int ConstPointer(const int * value)
{
    return (*value) / 2;
}

3 个答案:

答案 0 :(得分:2)

只要值小于或等于指针(sizeof)的大小,通过const指针永远不会快于值。它也更烦人,有时甚至是错误的(堆栈变量)。

答案 1 :(得分:1)

通常,传递值应该更快。事实上,该值可能已经存在于寄存器中,在这种情况下访问缓存不是必需的。但是,如果函数代码与调用者代码一起编译,则编译器可能会进行优化。

答案 2 :(得分:1)

传递内置类型(如int,char by pointer)不会产生更好的性能结果。

使用const关键字传递值无关紧要,因为原始值不会改变。