① 코드 실행 속도 향상
② 변수 선언 없이 사용
③ 코드 재사용성 및 관리 용이성 증대
④ 컴파일 오류 방지
① 매개변수나 반환값이 임시 메모리에 저장된다
② 함수가 아무런 매개변수를 받지 않거나, 아무런 값을 반환하지 않는다
③ 함수가 전역 변수만 사용한다
④ 함수 실행 중 오류가 발생할 수 있다
① 힙 (Heap)
② 코드 섹션 (Code section)
③ 스택 (Stack)
④ 데이터 섹션 (Data section)
① 선언은 .cpp에, 정의는 .h에 작성한다
② 선언은 실제 구현을 포함하고, 정의는 시그니처만 가진다
③ 선언은 시그니처만(세미콜론으로 끝), 정의는 실제 구현({} 안에 코드)
④ 선언 없이 정의만 있으면 컴파일이 더 빠르다
① 함수 이름만 같으면 된다
② 매개변수 개수나 타입이 달라야 한다
③ 반환 타입만 다르면 된다
④ 같은 .cpp 파일에 있어야 한다
① 실행 속도를 높이기 위해
② C++는 위에서 아래로 분석하므로, 호출 시점에 해당 함수의 존재를 알아야 함
③ 메모리 절약을 위해
④ 링커가 연결하기 위해
① 전역 변수는 스택에, 지역 변수는 Data 영역에 저장된다
② 전역 변수는 Data 영역·프로그램 전체 유효, 지역 변수는 스택·함수 내 유효
③ 지역 변수는 함수 종료 후에도 값이 유지된다
④ 전역 변수를 사용하는 것이 항상 권장된다
① FIFO(선입선출) 구조이다
② LIFO(후입선출) 구조이며, 가장 나중에 호출된 함수가 먼저 종료된다
③ 프로그램 종료 시까지 데이터가 유지된다
④ 힙보다 크기가 크다
① 전역 변수를 너무 많이 사용할 때
② 재귀 함수의 종료 조건 누락 등으로 스택 프레임이 무한히 쌓일 때
③ 지역 변수를 선언할 때
④ #include를 많이 할 때
① 매개변수
② 반환 주소
③ 지역 변수
④ 전역 변수
void AddHp(int hp, int value) { hp += value; }
int main() {
int hp = 100;
AddHp(hp, 20);
cout << hp << endl;
}
① 120
② 100
③ 20
④ 컴파일 에러
int Test(int& a) { a += 10; return a; }
int main() {
int x = 5;
Test(x);
cout << x << endl;
}
① 5
② 15
③ 10
④ 컴파일 에러
① 복사 전달은 원본을 수정할 수 있고, 참조 전달은 불가능하다
② 복사 전달은 값만 복사되어 원본 영향 없음, 참조 전달은 원본 직접 수정 가능
③ 참조 전달은 int a 형태로 받는다
④ 복사 전달이 항상 더 빠르다
① 프로그램의 전체 실행 시간을 측정하기 위해
② 특정 코드 줄에서 프로그램 실행을 일시 중지시키기 위해
③ 코드의 문법 오류를 자동으로 수정하기 위해
④ 다른 함수를 호출하는 것을 방지하기 위해
① F5
② F9
③ F10
④ F11
① F10은 함수 내부로 진입하고, F11은 그렇지 않다
② F10은 현재 줄만 실행하고 함수 안으로 들어가지 않음, F11은 함수 내부로 진입
③ F10은 프로그램을 종료하고, F11은 재시작한다
④ 둘은 동일하다
① 변수 값을 수정한다
② 현재까지 호출된 함수들의 순서를 추적한다
③ 컴파일 에러를 표시한다
④ 실행 속도를 측정한다
① 모든 줄에서 멈춘다
② 특정 조건(예: hp <= 0)이 만족될 때만 정지한다
③ 컴파일 시점에만 작동한다
④ 링킹 오류를 수정한다
① 소스 코드를 수정한다
② 변수나 수식(hp + 200 등)을 등록해 실시간으로 값 추적
③ 브레이크포인트를 자동 설정한다
④ 실행 파일을 생성한다
① 함수의 실제 구현 내용을 담는다
② 전역 변수나 상수 값을 저장한다
③ 다른 파일에서 사용할 함수나 변수 등의 선언을 제공한다
④ 프로그램 실행에 필요한 라이브러리를 모두 포함시킨다
① main → EnterBattle → EnterField → SelectPlayer
② main → EnterField → EnterLobby → CreateRandomMonster
③ main → EnterLobby → SelectPlayer → EnterField → CreateRandomMonster → EnterBattle
④ main → CreateRandomMonster → EnterBattle → EnterLobby
extern int GTest;의 의미로 옳은 것은?① GTest 메모리를 이 파일에서 정의한다
② GTest는 다른 파일에서 정의되어 있다고 선언한다
③ GTest를 반드시 사용해야 한다
④ GTest를 삭제한다
#pragma once의 역할은?① 컴파일 속도를 높인다
② 헤더 파일이 중복으로 포함되지 않도록 한다
③ extern을 대체한다
④ 링킹을 수행한다
① 링킹 → 전처리 → 컴파일 → 어셈블
② 전처리 → 컴파일 → 어셈블 → 링킹
③ 컴파일 → 링킹 → 전처리 → 어셈블
④ 어셈블 → 링킹 → 컴파일 → 전처리
① #include 누락
② 선언만 있고 정의(구현)가 없음
③ #pragma once 누락
④ 매개변수 타입 불일치