프로그래밍/C++
#25. 값 전달
코딩하는상후니
2022. 7. 18. 23:13
*값 전달
=> 함수의 매개변수로 인자를 넘겨줄 때, 그 매개변수의 값이 '복사' 된다.
int Sub(int a, int b)
{
return a - b;
}
void IncreaseHp(int hp)
{
hp += 1;
}
int main()
{
int hp = 1;
cout << "Increase 호출 전 : " << hp << endl;
IncreaseHp(hp);
cout << "Increase 호출 후 : " << hp << endl;
}
*어셈블리 mov & lea
mov : 값 이동
lea : 주소 이동
만약 void IncreaseHp(int& hp) 이라면,
=> mov eax, dword ptr [hp] / mov ecx, dword ptr [eax]
mov 두번으로 해당 주소의 값을 가져오고
add ecx, 1 => hp += 1 실행
=> mov edx, dword ptr [hp] / mov dword ptr [edx], ecx
결과 값을 hp 의 주소값을 가져온 다음 해당 값에 넣어주는 걸 볼 수 있음.
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.