728x90
register
register 키워드는 변수를 CPU 레지스터에 저장해 달라고 요구하는 키워드입니다.
register는 메모리에 비해 접근 속도가 빠르기 때문에, 당연히 연산의 처리 속도가 증가합니다.
그러나 register의 크기는 메모리보다 훨씬 작기 때문에 모든 변수를 register에 할당할 수 없습니다.
컴파일러는 기본적으로 스스로 최적화를 진행한 후 register에 변수를 할당하지만, register 키워드를 사용할 경우 컴파일러에게 해당 변수를 register에 등록하면 좋다는 힌트의 용도로 사용할 수 있습니다.
힌트의 용도이므로 무조건 register에 등록되는 것은 아닙니다.
모든 레지스터가 사용중이면 할당 받지 못할수도 있습니다.
volatile
다음은 자바의 volatile에 대한 설명이지만 C언어도 동일하기에 해당 글을 참고하시면 좋을 거 같습니다.
https://ttl-blog.tistory.com/238
[JAVA] Volatile 이란?
Volatile volatile로 선언된 변수가 있는 코드는 최적화되지 않는다. volatile 키워드는 변수를 'Main Memory에 저장하겠다'라고 명시하는 것이다. 변수의 값을 Read할 때마다 CPU cache에 저장된 값이 아닌, Mai
ttl-blog.tistory.com
728x90
'c언어' 카테고리의 다른 글
[C언어] - 배열 (0) | 2022.04.19 |
---|---|
[C언어] - 재귀함수 (0) | 2022.04.19 |
[C언어] - 스택프레임 (0) | 2022.04.19 |
[C언어] - 지역변수, 전역변수, static 변수 (0) | 2022.04.19 |
[C언어] - 함수 (0) | 2022.04.19 |