Stack Frame 스택 프레임

 

인프런 Rookiss님의 'Part1: C++ 프로그래밍 입문' 강의를 기반으로 정리한 필기입니다. 
😎[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 강의 들으러 가기!

 

 


 

스택

 

스택: 높은 메모리주소 -> 낮은 메모리주소 방향으로 증가

 

 


 

전체 코드

 

더보기
#include <iostream>
using namespace std;

// 호출 스택

void Func1()
{
    cout << "Func1" << endl;

    Func2(1, 2);
}

void Func2(int a, int b)
{
    cout << "Func2" << endl;

    Func3(10);
}


void Func3(float a)
{
    cout << "Func3" << endl;

}

int main()
{
    cout << "main" << endl;
    Func1();

    return 0;
}

순서가 안 맞으면 빌드가 안 된다.

 

 

더보기
#include <iostream>
using namespace std;

void Func3(float a)
{
    cout << "Func3" << endl;

}

void Func2(int a, int b)
{
    cout << "Func2" << endl;

    Func3(10);
}

void Func1()
{
    cout << "Func1" << endl;

    Func2(1, 2);
}

int main()
{
    cout << "main" << endl;
    Func1();

    return 0;
}

 

 

 

 


 

전체코드

 

더보기
#include <iostream>
using namespace std;

// 스택 프레임

void PrintNumber(int number)
{
    cout << "넘겨주는 숫자는 " << number << " 입니다" << endl;
}

int MultiplyBy(int a, int b)
{
    int c = a * b;
    return c; // c는 지역변수
}

// F5 : 브레이크 포인트까지 실행
// F10 : 프로시져 단위로 실행
// F11 : 한 단계씩 코드 실행

int main()
{
    int a = 3;
    int b = 5;
    int result = MultiplyBy(b, a);
    PrintNumber(result);


    return 0;   // 생략하는 경우도 있다. 반환하는 값이 없는 경우 VS 컴파일러가 0으로 반환한다. 그래서 생략해도 정상적으로 작동할 때가 있는것이다.
}

 

 

 

 

 

 

 

http://www.tcpschool.com/c/c_memory_structure

 

 

코딩교육 티씨피스쿨

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

tcpschool.com

 

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

 

코딩교육 티씨피스쿨

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

tcpschool.com

 

 

 

'⭐ Programming > C++' 카테고리의 다른 글

[C++] 호출 스택  (0) 2022.03.22
[C++] 지역변수와 값 전달  (0) 2022.03.21
[C++] 함수기초  (0) 2022.03.21
[C++] Enumeration 열거형  (0) 2022.03.20
[C++] 가위 바위 보  (0) 2022.03.20