저 하늘의 구름처럼~

C에서의 static 키워드의 특징 & C# 에서의 static 키워드의 특징 본문

DotNet

C에서의 static 키워드의 특징 & C# 에서의 static 키워드의 특징

강백호v 2009. 7. 23. 00:20

1. C에서의 static 키워드의 특징.
static 키워드의 의미는 키워드의 대상이 되는 변수나 메서드가 메모리 상의 어떤 위치에 바인딩되는지가 컴파일 타임 혹은 링킹 타임에 정적으로 바인딩되는 변수를 의미한다.
static 키워드는 프로그램이 시작될 때 만들어져서 지역변수처럼 선언된 범위를 넘어서서는 접근이 불가능하지만 프로그램이 종료 될때까지 자신만의 메모리 공간을 확보하고 있다.(함수 안에서 사용하여 함수가 종료된 이후에도 해당 값이 남아 있음을 의미한다.)
전역 변수를 static 으로 정의 하면 그파일 내에서만 사용이 가능하고, 외부 파일에서는 변수에 접근이 불가능하다. 값이 초기화되어 있지 않으면 "0"으로 초기화된다.

2. C#에서의 static 키워드의 특징.
C#에서는 객체를 생성할 때 항상 new 로 객체를 생성하여 메모리 공간을 확보해주어야 한다. 하지만,
static 키워드가 붙은 항목은 따로 객체를 생성하지 않아도 바로 사용할 수 있다는 것을 의미한다.
C#에서 메인문의 형태가 static void Main 이라고 되어 있는 이유는 해당 클래스에 대한 객체를 만들 필요없이 바로 Main() 메서드를 사용할 수 있음을 의미한다.
static 키워드가 붙은 내용들은 클래스에 대한 정보를 메모리에 올릴때 바로 생성하여 new 연산과 관계없이 바로 사용이 가능하다.
static 메서드에서는 static 멤버변수나 static 메서드 만사용이 가능하다. static은 객체 생성 이전에 존재가 가능하지만 일반 메서드는 new 연산을 한후에 생성 될 수 있기 때문이다.