*값 전달
=> 함수의 매개변수로 인자를 넘겨줄 때, 그 매개변수의 값이 '복사' 된다.
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 의 주소값을 가져온 다음 해당 값에 넣어주는 걸 볼 수 있음.
본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.
'프로그래밍 > C++' 카테고리의 다른 글
#27. 함수 기타 내용 (0) | 2022.07.18 |
---|---|
#26. 호출 스택 (0) | 2022.07.18 |
#24. 함수 호출 규약 ( Calling Convention ) (0) | 2022.07.18 |
#23. #define & typedef & Rand & 열거형 (0) | 2022.07.17 |
#22. 반복문 (0) | 2022.07.17 |