구조체는 전역변수 취급인가요?
792
작성한 질문수 57
CreatePlayer안에서
ret라는 변수를 만들고
뭔가 수작을 부리고 다시 리턴으로 돌려주는데
CreatePlayer에서 생성한 지역변수의 값이
EnterLobby의 지역변수값 안으로들어 간거잖아요
ret가 지역변수면 값이 전달이안될텐데 구조체와 구조체로 만든 모든 변수는 전역변수 취급이 되는건가요?
답변 1
4
CreatePlayer에서 생성한 지역변수의 값이 EnterLobby의 지역변수값 안으로들어 간거잖아요
-> 이건 맞습니다.
구조체로 만든 모든 변수는 전역변수 취급이 되는건가요?
-> 물론 그건 아닙니다.
사실 정답은 질문에서 말씀주신 부분에 있는데,
지역변수의 [값]이 EnterLobby 지역변수 [값] 안으로 들어간 것입니다.
즉 복사가 일어나는 것이죠.
return ret을 할 때, 그 결과 값을 레지스터(eax)나 스택 어딘가에다가 임시 저장했다가,
그것을 EnterLobby 지역변수에 복사하게 됩니다.
참고로 요즘 컴파일러는 똑똑해서
복사 횟수를 최대한 줄이기 위해 CreatePlayer 쪽 스택프레임이 아니라,
막바로 EnterLobby 지역변수 안에다 다이렉트로 값을 쓰는 경우도 있습니다.
visualstudio에서 파일분할관리실습시 설정 문의를 드립니다.
0
541
1
정렬함수 좀 더 확실하게 이해 할 방법이 있을까요?
0
442
1
strcpy() 구현 관련 질문
0
513
1
빌드(망치)를 누르니 이런 오류가 떴습니다. 어떻게 해야 하나요?
0
452
1
클래스 타입의 포인터 질문합니다
0
546
1
입력값을 enum 값에 넣어주는거 이제 막혔나요?
0
497
1
템플릿 특수화 관련 질문
0
384
1
포인터 관련 질문합니다!
0
263
1
Unable to start assembler. Check your settings.
0
830
2
cpu선택
0
539
1
포인터 질문이 있습니다
0
324
1
20:35 에서 구조체 크기에 대한 질문입니다!
0
584
1
iterator 삭제관련
0
406
1
함수 호출을 디스어셈블러로 분석하다가 궁금점이 생겼습니다!
0
310
1
15 분 45초 대 질문
0
308
0
스택 프레임 질문합니다!
2
306
1
오른값 참조 in 게임
0
384
0
동적할당 질문이 있습니다
0
449
1
안녕하세요 메모리에 대해 질문드립니다.
0
304
1
함수객체 의 매개변수
0
358
1
복사생성자
0
434
1
main이나 endl 부분이 주황색으로 표시된건 어떻게 하나요
0
420
1
포인터 실습 강의를 보고 궁금한게 있습니다.
0
354
1
스택 오버플로우
2
790
1





