我可以编写一个简单的函数来使用函数两种方式添加 2 个数字。其中一个使用 void 输出函数签名,另一个使用 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;
}
这是第二个代码
#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查看符号时。我注意到两者之间的细微差别。事实上,假设LEA和MOV的执行周期数相同,第二个代码的指令少了。使用第一种编码风格与第二种编码风格相比是否有一些优势?也许,反之亦然。
我在 stackexchange 中搜索了这个问题,发现了这个(Void vs Int Functions),但这并不能解释。