У меня есть две небольшие функции, называемые main. Ниже приведена программаКак точно разматывать стопку между функцией звонящего и вызванной функцией
int fun1(int x)
{
int s;
s=8;
}
int fun2(int x)
{
int s;
s=x*4;
}
int main(int argc, char *argv[])
{
int n=2;
cout << fun1(n)<<endl;
cout<<fun2(n)<<endl;
return 0;
}
Функция 1.fun1(), вызываемая с аргументом x, но без операции с использованием переменной x. Таким образом, в выходе "соиЬ < < fun1() - я получаю выход 2 "текущее значение п".
функция2.fun2() вызывается с arguement х и использовали его в работе" S = X * 4" и на выходе „соиЬ < < fun2()“ - я получаю выход 8 - „2 * 4“
Я не передавая любую ссылку или указатель значение функции по-прежнему получать два различных выходы Хотелось бы узнать, как разматывание стека различно в двух разных случаях.
Является ли отсутствие возвращаемых значений из ваших функций опечаткой или это подлинный код? – mathematician1975
@ математик1975 да. это подлинный код. Я скомпилировал его в windriver rtos с версией g ++ версии 2.6.25.5. –
Поскольку ваш код имеет неопределенное поведение, он не «делает» все, что мы можем обсудить. –