본문 바로가기
Unity/C# Script

C#의 Static

by Pretty Garbage 2018. 5. 16.

보통 C언어의 메모리구조는


Stack과 Heap 그리고 Data 영역으로 나뉘어진다.






아시다시피 Stack(스택)은 프로그램이 실행에 관한 함수 호출과 지역변수 매개변수가 관리되는 곳이며


함수 호출이 완료되면 사라진다.





위와 같은 그림으로 관리 되어진다. Heap(힙)영역은 동적 할당을 위한 공간이다.


런타임동안 메모리를 할당하고 스택에서 참조할 수 있도록 해주는 메모리 공간!





ex) Class class = new Class(); 


를 하게 된다면 이 데이터에 대한 정보는 힙영역에 기록이 된다.





마지막 데이터영역인데


이 포스팅을 하게된 결정적인 이유이다.


C언어나 다른 언어들은 대부분 static int num1 = 10; 이라고 하게 된다면


프로그램 실행과 동시에 데이터 영역에 초기화되는 것으로 알고 있는데


C#에서의 static은 최초에 호출되는 시점에서 초기화가 진행된다. 


C# 4.0부터 추가된 기능임.

(http://blog.naver.com/PostView.nhn?blogId=dotnethelper&logNo=60104797637&categoryNo=0&parentCategoryNo=0&viewDate=&currentPage=2&postListTopCurrentPage=&isAfterWrite=true) 참조

'Unity > C# Script' 카테고리의 다른 글

GameObject의 각속도 구하기  (6) 2020.08.05
유니티 C# Script에서 Null Conditional Operator  (0) 2020.08.04
UnityEvent  (0) 2020.01.17