프로그래밍/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 의 주소값을 가져온 다음 해당 값에 넣어주는 걸 볼 수 있음.
 

본 내용은 인프런의 루키스님 강의를 듣고 정리한 내용입니다.

'프로그래밍 > 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