[C#]

register 키워드 vs. volatile 키워드

럭키🍀 2021. 5. 5. 20:03

register

레지스터 변수는 CPU가 사용하는 임시 저장용 고속 메모리인 레지스터를 저장 영역으로 사용하는 변수이다.

굳이 register를 붙이지 않더라도 컴파일러가 빠른 교환이 필요한 코드에 사용되는 변수는 레지스터 변수로 바꿔준다.

 

volatile

항상 메모리에 두어 그때 그때 읽고 쓰도록 컴파일러가 최적화하지 않기 위해서 사용한다.

주로 어떤 값을 항상 감시하는 경우에 사용된다.

인터럽트 핸들러나, 메모리맵  I/O, 다중 스레드 프로그래밍, 기계제어 등에 사용한다.

 

둘 다 해당 변수의 메모리 적재와 관련되어있고 상반된 역할을 하도록 컴파일러에게 지시한다.

m.blog.naver.com/PostView.nhn?blogId=classic2u&logNo=50003118713&proxyReferer=https:%2F%2Fwww.google.com%2F

 

volatile 이란?

* volatile 이란? 말 그대로 따지면, "그 변수를 휘발성 메모리에 만들어라"라는 뜻입니다.일반적으로 컴퓨...

blog.naver.com

참고한 블로그

'[C#]' 카테고리의 다른 글

널러블 타입(Nullable type,TYPE?)  (0) 2022.01.25