비관리 코드
-
CLR의 제어 하에 있지 않은 응용 프로그램은 관리되지 않습니다.
-
안전하지 않은 코드 또는 관리되지 않는 코드는 포인터 변수를 사용하는 코드 블록입니다.
-
unsafe 수정자는 비관리 코드에서 포인터 사용을 허용합니다.
예를 살펴보겠습니다 -
예
static unsafe void Main(string[] args) { int var = 20; int* p = &var; Console.WriteLine("Data is: {0} ", var); Console.WriteLine("Address is: {0}", (int)p); Console.ReadKey(); }
관리 코드
관리 코드는 실행이 공용 언어 런타임에 의해 관리되는 코드입니다. 관리 코드를 가져와서 기계어 코드로 컴파일합니다. 그 후, 코드가 실행됩니다. 여기서 런타임, 즉 CLR은 자동 메모리 관리, 유형 안전 등을 제공합니다.
관리 코드는 .NET 위에서 실행되는 고급 언어로 작성됩니다. 이것은 C#, F# 등이 될 수 있습니다. 이 언어로 컴파일러를 사용하여 컴파일된 코드는 기계어 코드가 생성되지 않습니다. 그러나 런타임에 의해 컴파일되고 실행되는 중간 언어 코드를 얻게 됩니다.
"비관리 코드"라고 하는 C/C++ 코드에는 해당 권한이 없습니다. 프로그램은 운영 체제에 의해 메모리에 로드되는 바이너리 형식입니다. 나머지는 프로그래머가 처리해야 합니다.