0%

linux下c语言函数返回值探究

今天翻看《程序员的自我修养——链接装载与库》时发现一个很有趣的知识点

在32位系统中,函数的返回值一般会放在eax寄存器中,但当返回值大于4个字节时,返回值又会放在哪呢?
先看一般情况下
test1.c

func函数返回一个Int类型的值

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<stdio.h>

int func(int a)
{
return a;
}

int main()
{
int temp=0;
scanf("%d",temp);
func(temp);
return 0;
}

发现返回值在eax中