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

1

一般に、値による受け渡しは高速である必要があります。実際、値はすでにレジスターにある可能性があり、その場合、キャッシュにアクセスする必要はありません。ただし、関数コードが呼び出し元コードと一緒にコンパイルされる場合は、コンパイラがとにかく最適化する可能性があります。

于 2013-11-10T18:06:50.173 に答える
1

int や char などの組み込み型をポインターで渡しても、パフォーマンスは向上しません。

元の値は変更されないため、値渡しの const キーワードを使用しても問題ありません。

于 2013-11-10T18:07:16.473 に答える