* 해당 글은 게임 프로그래머 입문 올인원 강의를 보고 정리한 글입니다.
일부 언어에서는 전역 변수를 아예 제공하지 않거나, 사용을 강력하게 제한
이런 언어들은 대개 안정성, 코드 관리 용이성, 디버깅 편리성을 고려하여 전역 변수 대신 다른 구조를 채택한다
함수 시그니처(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
32bit, 64bit 차이
CPU가 한 번에 처리할 수 있는 크기 → 레지스터 크기
디버깅
https://coding-factory.tistory.com/643
'게임프로그래밍 > 게임 프로그래머 입문 올인원' 카테고리의 다른 글
[게임 프로그래머 입문 올인원] 파일분할, 블루프린트 실습 - 2주차 (0) | 2025.01.14 |
---|---|
[게임 프로그래머 입문 올인원] 블루프린트 실습 - 1주차 (0) | 2024.12.23 |
[게임 프로그래머 입문 올인원] 분기문, 반복문 (0) | 2024.12.18 |
[게임 프로그래머 입문 올인원] 산술 연산, 비교 연산, 논리 연산 (0) | 2024.12.16 |
[게임 프로그래머 입문 올인원] 변수, 정수의 원리, 변수의 마무리 (0) | 2024.12.12 |