function two way を使用して 2 つの数値を加算する単純な関数を作成できます。1 つは void 出力関数シグネチャを使用し、もう 1 つは int 出力関数シグネチャを使用します。最初のものは、プログラマーによってより一般的に使用されていることに気付きました。
これが最初のコードです
#include<iostream>
void add(int x, int y, int* z)
{
z[0] = x + y;
}
int main()
{
int a = 5;
int b = 10;
int c = 0;
add(a, b, &c);
return 0;
}
これが2番目のコードです
#include<iostream>
int add(int x, int y)
{
int z;
z = x + y;
return z;
}
int main()
{
int a = 5;
int b = 10;
int c;
c = add(a, b);
return 0;
}
gcc を使用してコードをコンパイルし、objdumpを使用してシンボルを見たとき。2つの非常にわずかな違いに気付きました。実際、 LEAとMOVの実行サイクル数が同じであると仮定すると、2 番目のコードの命令は 1 つ少なくなります。コーディングの最初のスタイルと 2 番目のスタイルを使用する利点はありますか? ひょっとしたら、その逆かもしれません。
この質問についてstackexchangeを検索し、これを見つけました(Void vs Int Functions)が、これは説明しません。