返回值的内存地址(汇编语言C+;+;) 我已经给出了一些C++代码,它是一种称为钳位的方法,它返回一个整数值。我被要求查看内存中的堆栈,通过反汇编,我可以看到堆栈中的返回值地址

返回值的内存地址(汇编语言C+;+;) 我已经给出了一些C++代码,它是一种称为钳位的方法,它返回一个整数值。我被要求查看内存中的堆栈,通过反汇编,我可以看到堆栈中的返回值地址,c++,C++,由于我在网上找不到任何信息,我应该寻找什么 int& clamp(int& value, int low, int high) { if (value < low) return low; if (value > high) return high; return value; } int&clamp(int&value、int-low、int-high){ 如果(值高) 高回报; 返回值; } 我附上了一张

由于我在网上找不到任何信息,我应该寻找什么

int& clamp(int& value, int low, int high) {
    if (value < low)
        return low;
    if (value > high)
        return high;
    return value;
}
int&clamp(int&value、int-low、int-high){
如果(值<低)
低回报;
如果(值>高)
高回报;
返回值;
}

我附上了一张图片,上面是我能看到的,我认为是返回值的内存地址,在内存窗口中是红色的。上面是该方法的代码。

这将返回一个整数引用,而不是值。优化器可以更改内容,并且返回的值可能只是在寄存器中。不一定在堆栈上。你在课堂上讨论过调用约定吗?我相信您突出显示了用于传递参数的堆栈部分。那是一家红衣服店的地址。该值应与返回的地址出现在EAX中。函数本身导致未定义的行为,因为它可能返回对局部变量(参数)的引用。这将返回整数引用,而不是值。优化器可以更改内容,并且返回的值可能只是在寄存器中。不一定在堆栈上。你在课堂上讨论过调用约定吗?我相信您突出显示了用于传递参数的堆栈部分。那是一家红衣服店的地址。该值应与返回的地址出现在EAX中。函数本身导致未定义的行为,因为它可能返回对局部变量(参数)的引用。