Namespaces
Variants

ATOMIC_VAR_INIT

From cppreference.net
헤더 파일에 정의됨 <stdatomic.h>
#define ATOMIC_VAR_INIT(value) /* unspecified */
(C11부터)
(C17에서 사용 중단됨)
(C23에서 제거됨)

value 와 동일한 타입의 atomic 변수를 초기화하는 데 사용할 수 있는 표현식으로 확장됩니다.

명시적으로 초기화되지 않은 자동 저장 기간의 원자 객체의 초기값은 정의되지 않습니다. 그러나 정적 및 스레드 지역 변수의 기본(0) 초기화는 유효한 값을 생성합니다.

원자 변수를 초기화할 때, 동시 접근(심지어 원자 연산을 통한 접근도)은 데이터 경쟁입니다(주소가 memory_order_relaxed 연산과 함께 즉시 다른 스레드로 전달되는 경우 발생할 수 있습니다).

목차

참고 사항

이 매크로는 C11 원자 타입에 대한 초기 설계 초안의 일부였습니다. C11에서는 필요하지 않으며, C17에서는 더 이상 사용되지 않고 C23에서는 제거되었습니다.

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
DR 485 C11 명세가 중복적이고 핵심 언어와 모순됨 수정됨

참고문헌

  • C17 표준 (ISO/IEC 9899:2018):
  • 7.17.2.1 ATOMIC_VAR_INIT 매크로 (p: 201)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.17.2.1 ATOMIC_VAR_INIT 매크로 (p: 274)

참고 항목

새로운 atomic_flag 를 초기화합니다
(매크로 상수)
C++ 문서 for ATOMIC_VAR_INIT