Server/C++

volatile 컴파일러 최적화

Juzdalua 2024. 7. 29. 17:15

C++에서 volatile 키워드는 C#, JAVA와 다르게 작동한다.

오로지 코드의 컴파일러 최적화만 수행하지 말라는 의미이다.

 

Release 모드에서는 자동적으로 코드 최적화가 진행된다.

아래와 같은 코드에서 코드 최적화가 진행되면 중간에 위치한 의미 없는 코드들은 실행되지 않는다.

 

int main()
{
	int a = 0;
	a = 1;
	a = 2;
	a = 3;
}

디버그 모드 / 릴리즈 모드

 

만약 프로그래머가 작성한 코드가 쓸데없는 코드가 아니라면, 최적화가 불필요할 수 있다.

volatile 키워드는 컴파일러 최적화를 진행하지 않게한다.

int main()
{
	volatile int a = 0;
	a = 1;
	a = 2;
	a = 3;
}

'Server > C++' 카테고리의 다른 글

슬립(Sleep)과 운영체제  (0) 2024.07.30
스핀락 (Spin Lock)  (0) 2024.07.29
효율적인 락 구현 방법  (0) 2024.07.29
데드락 ( Dead Lock )  (0) 2024.07.29
Lock  (0) 2024.07.29