[C#] 컴퓨터 구조 입문(High/Low Level, 메모리, 함수의 구현/호출부, delegate)

2023. 7. 7. 15:08C#

728x90
반응형

8비트 = 1바이트 (8자리 2진수)

 

알파벳 1자 = 1바이트

 

 


 

 

High Level 언어 / Low Level 언어

 

저수준, 고수준은 두 항목을 비교했을 때의 의미이다.

기계어와 어셈블리어가 있다면 기계어가 Low Level, 어셈블리어가 High Level이 되고,

어셈블리어와 C언어가 있다면 어셈블리어가 Low Level, C언어가 High Level이 된다.

C언어와 C#이 있다면 C언어가 Low Level, C#이 High Level이 된다.

 

고수준으로 갈수록 하부단계를 몰라도 되지만 저수준을 이해하면 고수준의 내용을 더 확실하게 이해할 수 있다.

 

 


 

 

메모리의 종류

  • 스택(Stack): 빠르게 사용하는 쌓이는 메모리의 종류. 쌓였다가 사용이 끝나면 사라진다.
  • 힙(Heap): 마구간에 있는 건초처럼 늘어놓고 보관한다는 의미. 큰 자료를 관리하기 위한 메모리.(게임에서 사용되는 그림, class) 레퍼런스(reference)는 바로가기와 같은 기능이다. 변수가 참조를 가지고 있다는 뜻은 변수가 실제 데이터를 가리킨다는 의미이다.
  • 스태틱(Static): 메모리의 공간을 정해놓고 여러 곳에서 공통으로 공유하여 사용하는 메모리

이처럼 메모리 종류가 구분되어 있는 이유는 데이터 종류에 따라 최대의 속도와 최적의 상황으로 사용하기 위함이다.

 

 


 

 

함수의 동작

void Start()
{
    int a = 10, b = 20, result;
    result = Add(a, b); //함수의 호출부
    print(result);
}

int Add(int x, int y) //함수의 구현부
{
    int z;
    z = x + y;
    return z;
}

 

 


 

 

C# Delegate

대리자를 두고 함수를 대리자가 호출하도록 하는 기능. delegate가 없어도 상관 없지만 타이핑을 줄이고 프로그래밍을 효과적으로 하기 위해서 사용한다.

함수를 저장하는 공간으로써 두 수를 더하는 함수를 실행해야할 때는 두 수를 더하는 함수를 저장하고, 두 수를 빼는 함수를 실행해야할 때는 두 수를 빼는 함수를 저장한다. 즉, 상황에 따라 다른 동작이 실행되도록 구현한다.

728x90
반응형