게임프로그래밍/게임 프로그래머 입문 올인원

[게임 프로그래머 입문 올인원] 함수 기초, 스택 메모리와 스택 프레임, 디버깅 기초

shine94 2025. 1. 7. 15:46

* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다.

   강의_바로가기

 

[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버

Rookiss | 어디부터 시작할지 막막한 게임 프로그래밍 입문자를 위한 All-In-One 커리큘럼입니다. C++, 자료구조/알고리즘, STL, 게임 수학, Windows API, 게임 서버 입문으로 이어지는 알찬 커리큘럼으로

www.inflearn.com

 

 

 

 

일부 언어에서는 전역 변수를 아예 제공하지 않거나, 사용을 강력하게 제한

이런 언어들은 대개 안정성, 코드 관리 용이성, 디버깅 편리성을 고려하여 전역 변수 대신 다른 구조를 채택한다

 

함수 시그니처(Function Signature)

함수의 고유 식별 정보

 

함수 시그니처의 역할

1. 함수 오버로딩

 : 같은 이름의 함수라도 매개변수의 타입이나 순서를 다르게 정의할 수 있다

2. 컴파일러의 호출 판단 기준

 : 컴파일러는 호출된 함수의 인자와 함수 시그니처를 비교하여 적절한 함수를 결정

 

C++에서 함수는 코드 영역에 속함

 : 프로그램 실행 시 기계어로 변환된 함수 코드가 저장

   함수의 명령어들이 저장되는 읽기 전용(Read-Only) 메모리

   함수 자체는 실행 중 변경되지 않으므로 읽기 전용으로 보호

 

코드 영역은 코드(Instructions)와 ROData(Read-Only Data)로 나뉘는데 헷갈리지 말자!

 

코드(Instructions) ← 여기에 함수가 속함

 : 함수나 프로그램 명령어로, 실행 가능한 기계어 코드가 저장되는 영역

 

ROData(Read-Only Data)

 : 문자열 리터럴, const 상수 등 실행되지 않는 읽기 전용 데이터를 저장하는 영역

 

스택은 높은 주소에서 낮은 주소로 구성됨

ㄴ 할당 sub, 반납 add

 

함수 프레임

함수 호출과 관계되는 지역변수와 매개변수가 저장하는 영역

함수의 호출과 함께 함수의 호출이 완료되면 소멸

https://www.tcpschool.com/c/c_memory_stackframe

 

코딩교육 티씨피스쿨

4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등

tcpschool.com

 

32bit, 64bit 차이

CPU가 한 번에 처리할 수 있는 크기 → 레지스터 크기

 

디버깅

https://coding-factory.tistory.com/643

 

[IDE] 비주얼 스튜디오(Visual Studio) 디버깅 하는법

코딩을 하는 과정에서 필연적으로 여러 가지 오류가 생기기 마련입니다. 이러한 오류들을 해결하는 과정을 디버깅이라고 합니다. Visual Studio를 포함한 모든 IDE들은 이러한 디버깅 기능을 지원하

coding-factory.tistory.com