- thread_local
변수의 존속시간이 쓰레드의 존속 시간과 같다는 제한자
존속시간은 예를들어
정적 변수의 존속시간은 프로그램이 실행되고 종료될때까지이다
- volatile
volatile : 변덕스러운
변덕 : 이랬다저랬다 잘 변하는 태도나 성질
개념 : 간단히는 최적화를 수행하지 못하게 막는다, 라고 할수있고
자세히는 volatile 변수를 참조할때 레지스터에 로드 된 값을 사용하지 않고 항상 메모리를 직접 참조 한다
최적화를 왜 막아야하는가?
최적화로 인해서 생략된 코드때문에 개발자가 의도한대로 흘러가지 않는 경우도 있는 듯 하다
https://luna-archive.tistory.com/2
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=classic2u&logNo=50003118713&parentCategoryNo=&categoryNo=15&viewDate=&isShowPopularPosts=false&from=postView
이 두 글에 자세히 나와있다
최적화가 일어나지 않으므로 코드가 생략되지 않고 모두 직접 메모리에 실행되어 값이 변할수도 있기에
변덕스러운 이라는 뜻이 어울린다고 생각한다
일단 이 개념은 여기까지
- mutable
개념 : const 구조체 또는 const 클래스의 멤버지만 변경가능한 멤버변수를 선언할때 사용한다
- const의 내부링크
기본 전역 변수는 외부링크로 디폴트가 되어있다
하지만 const가 붙으면 내부링크로 변경된다
- 함수와 링크
함수역시 링크 속성을 가진다
모든 함수는 정적기억존속을 가진다.(프로그램의 시작과 끝까지) = 외부링크
static을 사용하여 내부링크를 부여 할 수 있다
- 단일 정의 규칙
프로그램은 인라인이 아닌 모든 함수에 대해서 정확히 하나의 정의만을 가져야한다
'C++ > [책] C++ 기초 플러스' 카테고리의 다른 글
[ 616p ~ 650p ] 추상화, 클래스, 사용자 범위 결정 연산자, 인라인 메서드, 멤버함수 (0) | 2021.08.24 |
---|---|
[ 596p ~615p ] 위치지정new, 선언영역 & 잠재 사용 범위, 이름공간, using선언 & using지시 (0) | 2021.08.18 |
[ 559p ~ 589p ] 분할컴파일, #ifndef & #endif, Linkage, extern, static, 정적&전역&정적지역 변수 (0) | 2021.08.16 |
※[ 535p ~ 558p ] 오버로딩분석, decltype, 후위반환타입 (0) | 2021.08.12 |
[ 517p ~ 534p ] 함수 템플릿, 템플릿 오버로딩, 구체화, 명시적 특수화 (0) | 2021.08.11 |