我只看了一下我从这个C程序得到的一个非常简单的SPARC程序集输出:
int addition_func(int a, int b)
{
return(a+b);
}
void main()
{
int a = 20;
int b = 19;
int res;
res = addition_func(a, b);
}
Run Code Online (Sandbox Code Playgroud)
反汇编.text:
00000000 <addition_func>:
0: 81 c3 e0 08 retl
4: 90 02 00 09 add %o0, %o1, %o0
00000008 <main>:
8: 90 10 20 14 mov 0x14, %o0
c: 92 10 20 13 mov 0x13, %o1
10: 82 13 c0 00 mov %o7, %g1
14: 40 00 00 00 call 14 <main+0xc>
18: …Run Code Online (Sandbox Code Playgroud) 自从我上次编程C以来已经有一段时间了,似乎我在此期间已经忘记了所有内容......我有一个非常简单的指针问题.假设我有一个通过循环迭代计算求和的函数.此函数不仅应该返回循环计数器,还要返回它计算的总和.因为我可以只返回一个值,所以我假设我能做的最好就是声明一个指针.我能这样做吗:
int loop_function(int* sum)
{
int len = 10;
for(j = 0; j < len; j++)
{
sum += j;
}
return(j);
}
....
int sum = 0;
loop_function(&sum);
printf("Sum is: %d", sum);
Run Code Online (Sandbox Code Playgroud)
或者我是否需要定义一个额外的变量,指向我传递给函数的总和?
非常感谢,马库斯