'unsafe'에 해당되는 글 1건

  1. 2008.10.27 unsafe 코드 & 설정 (1)

 앞에서 포스팅한 내용중에서 unsafe를 사용한 코드가 있었는데,
 그렇게 어려운 내용은 아니지만, 가끔 설정을 어디서했떠라-_-;; 하고 까먹기 때문에
 정리도 할겸 살짝 포스팅 해봅니다. ㅋ
 

 C#에서는 C나 C++에서 사용하던 포인터(*)를 기본적으로 사용하지 않습니다.
 C#에서는 CLR이 메모리를 관리해주기 때문에 사용자가 직접 메모리를 건드리지 않아도 
 사용할 수 있도록 도와주고 있습니다. 
 하지만, 그렇다고 해서 C#에서 포인터를 사용하지 못하는것은 아닙니다.
 물론, CLR의 관리를 벗어나기 때문에 안전성이 보장되지 않습니다.. 그래서 이름이 unsafe이지 않을까 합니다.


 사용법!!
 
 unsafe
{
   int a ;
   int * p = &a;
}


 포인터를 사용하는 방법 치고는 꽤 간단하다고 볼 수 있습니다.
 단순히 unsafe라는 코드영역 안에서 포인터를 사용하면 되기 때문입니다

 하지만 기본적으로 C#은 안전하지 않은 unsafe영역을 싫어합니다-_-!!, 
 그렇기 때문에 지금과 같이 그냥 단순히 코드만 삽입하여 사용한다면, 컴파일시 에러가 나타납니다. 
 

 만약 unsafe 코드를 사용하고자 한다면 옵션설정을 해 주어야 합니다.

 unsafe 옵션 설정
 

vs2005에서의 속성


VS 2008에서의 속성



vs의 버전마다 조금은 다르긴 하지만 기본적으로 안전하지않은 코드(unsafe code)를 사용하겠다 하고 표시하면 됩니다.


  unsafe선언의 다른 형태 

 물론 위에서 설명한 대로 unsafe를 사용할 수 있지만 다른 방식으로도 unsafe를 사용할 수 있습니다.
 

 unsafe private void UnsafeFunction()
{
   ...
}

 unsafe class UnsafeClass
{
 ...
}
 unsafe delegate void* UnsafeEventHandler (...);
 unsafe event UnsafeEventHandler Unsafe Event;

다음과 같이 , 함수,클래스 심지어 델리게이트와 이벤트에서도 unsafe가 가능하다고 합니다.
휴, 근데 필자는 이걸 언제 써먹어볼까 ...? 싶기도 하는 마음-_-,,


 이상으로 unsafe에 대한 포스팅을 마치도록 하겠습니다.
저작자 표시
신고
Posted by 천재소녀*
이전버튼 1 이전버튼

블로그 이미지
꿈꾸는아이, ㅋ Tasha의 완전범죄 구상소
천재소녀*

공지사항

Yesterday28
Today23
Total154,181

달력

 « |  » 2017.09
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

최근에 받은 트랙백

글 보관함