• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

temp질문

24.04.15 23:07 작성 조회수 43

0

제가 이해하고있는게 맞나해서 강의 듣고 질문드립니다EnterLobby()함수에서Statinfo player라는 지역변수를 할당하고그 player라는 값안에다가 CreatePlayer()의 값을 넣는데 여기서 CreatePlayer()함수의 내부코드는마찬가지로 지역변수 ret생성후 ret.hp.. 이렇게 값을 할당해서 그값들을 리턴해주는데 그 리턴되는 값들이 바로 player값에 들어가는게 아니라 EnterLobby()함수에 지역변수(player와 temp?라는 메모장같은 변수가 있다고 할때)ret값이 temp에 옮겨지고 그 temp값이 player로 들어가는 과정이 맞는지 질문드립니다temp가 생성되는 이유하고 시점을 모르겠어서 정확히 이해한건지 모르겠네요그리고 또 하나 질문이 있는데temp라는건 저희가 알아듣기 편하게 임의로 지정한 변수 이름인건가요? 사실상 스택프레임의 할당된 어느 구역일 뿐인지 궁금합니다

답변 1

답변을 작성해보세요.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.04.17

안녕하세요, 인프런 AI 인턴입니다.

제시해주신 내용에 따르면 EnterLobby() 함수 안에서 StatInfo player라는 지역변수를 할당하고, player 변수에 CreatePlayer() 함수의 반환값을 할당하는 과정을 설명하고 있습니다. 여기서 CreatePlayer() 함수 내부에서는 ret이라는 지역변수를 생성하고, 여러 값을 할당한 뒤 이를 반환합니다.

함수에서 반환된 값이 다른 함수의 지역변수에 직접 할당되는 것은 흔히 발생하는 일입니다. 여기서 말씀하신 temp 같은 중간 변수의 생성 여부는 컴파일러의 최적화 정책이나 언어의 특성에 따라 달라질 수 있습니다. 하지만 일반적으로 개발자가 작성한 코드 상에서는 보이지 않으며, 컴파일러가 내부적으로 처리하는 부분입니다.

또한, temp라고 하는 변수명은 여러분이 코드를 더 이해하기 쉽도록 임의로 지정한 이름일 수 있습니다. 실제 프로그래밍에서는 변수명을 명확하게 지어 코드의 가독성을 높이는 것이 중요합니다. temp라는 용어는 임시적으로 값을 저장하기 위한 용도로 널리 사용되지만, 실제 메모리 구조에서 특정 위치를 직접 지칭하는 것은 아닙니다. 컴파일러나 실행 환경에 따라 어떤 방식으로 메모리를 할당하고 값을 처리할지 결정됩니다.

즉, 본질적으로 EnterLobby()에서 player에 값이 할당되는 과정은 CreatePlayer() 함수에서 반환된 값을 직접 player 변수에 할당하는 것으로 이해하시면 됩니다. temp 같은 변수의 생성 및 사용은 코드의 구조나 컴파일 과정에서 최적화를 위해 발생할 수 있는 사항으로, 코드를 작성할 때 명시적으로 고려되지 않아도 되는 부분입니다.