C#의 메모리(함수까지)

2023. 5. 8. 00:42C# 프로그래밍 개념

메모리는 C#을 배워야 하기 때문에 알아야 하는 거는 아니고 모든 프로그램의 근간이 되는 지식이다.

 

모든 프로그램은 공짜는 없다. 메모리를 지불하기 때문에 메모리 구조를 아는 것은 코드의 동작 원리를 아는 것과 같다. 객체를 만들었다는 건 메모리를 지불한다는 것이다.

 

램이라는 것은 이진수로 되어 있는데 이런 게 예를 들어 램이 4기가면 4기가바이트 어치나 있다.

 

램 위에 올라가는 게 운영체(OS)가 있다. 우리가 만든 프로그램이 차지하는 램 공간은 사실 매우 작다.

 

우리가 만든 프로그램은 4개의 영역으로 나뉜다. 코드 / 데이터 / / 스택으로 나뉜다. 자 들어가는 영역이 존재하는데 객체로 만들었을 때 코드 그 자체가 영역에 존재하는 것이다.

 

상수는 코드 영역에 올라가 있다. 수정이 불가능한 것들이다.

래스 선언, 함수의 내용 그 자체. 디버그 하면 수정이 불가능한 것들이 거기에 올라간다.

 

Main 함수도 static을 빼면 함수의 모양을 갖추고 있고, 이곳을 시작이라고 잡은 함수.

 

C#의 규칙 Main이라는 이름의 함수로부터 시작된다. MAIN 함수로 시작하면 함수 실행도 메모리 공짜가 없다. 메인 함수가 실행되면 이 안에서 스택이라는 곳에 메모리를 할당한다. 함수의 실행이 다 끝나면 스택에서 메모리 할당된 게 없어진다.

 

실행되는 함수가 없어지면 모든 메모리가 날아가면서 프로그램이 종료된다. 프로그램의 라이프 사이클. 프로그램을 종료하면 프로그램이 램에서 사라진다. 함수 안에 있는 인자값도 실행이 된다. 함수의 인자값은 지역변수이라는 사실. 지역변수 특징은 함수가 끝나면 사라진다.

 

함수가 차지하는 공간은 함수의 지역변수 + 알파 만큼의 메모리 공간을 차지한다.

'C# 프로그래밍 개념' 카테고리의 다른 글

C# while문 / for문 / if문 / switch문  (0) 2023.05.08
C# 에서의 Static(정적)  (0) 2023.05.08
C# 연산자  (0) 2023.05.07
for과 foreach 비교  (0) 2023.05.06
C# 클래스  (0) 2023.05.06