1

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

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

在按值传递时使用 const 关键字仍然是一种好的编程习惯吗?

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

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

3 回答 3

2

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

于 2013-11-10T18:07:38.190 回答
1

一般来说,按值传递应该更快。事实上,该值可能已经在寄存器中,在这种情况下,不需要访问缓存。但是,如果函数代码与调用者代码一起编译,编译器可能无论如何都会优化。

于 2013-11-10T18:06:50.173 回答
1

通过指针传递 int、char 等内置类型不会带来更好的性能结果。

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

于 2013-11-10T18:07:16.473 回答