atomic_init
|
헤더 파일에 정의됨
<stdatomic.h>
|
||
|
void
atomic_init
(
volatile
A
*
obj, C desired
)
;
|
(C11부터) | |
기본 생성된 원자 객체 obj 를 값 desired 로 초기화합니다. 이 함수는 원자적이지 않습니다: 다른 스레드에서의 동시 접근(원자 연산을 통한 경우에도)은 데이터 경쟁(data race)입니다.
이것은 모든
generic function
에 대해 정의된
atomic object types
A
입니다. 인자는 volatile 및 비-volatile 모두의 주소를 수용하기 위해 volatile atomic 타입에 대한 포인터이며,
volatile
atomic 객체에 이 연산을 적용할 때 volatile 의미론이 유지됩니다(예: 메모리 매핑된 I/O).
C
는
A
에 해당하는 비-atomic 타입입니다.
제네릭 함수의 이름이 매크로인지 외부 링크를 가진 식별자로 선언되었는지는 명시되지 않습니다. 실제 함수에 접근하기 위해 매크로 정의를 억제하는 경우(예: ( atomic_init ) ( ... ) 와 같이 괄호로 묶은 경우), 또는 프로그램이 제네릭 함수의 이름으로 외부 식별자를 정의하는 경우, 그 동작은 정의되지 않습니다.
목차 |
매개변수
| obj | - | 초기화할 원자 객체에 대한 포인터 |
| desired | - | 원자 객체를 초기화하는 데 사용할 값 |
반환값
(없음)
참고 사항
atomic_init
는 동적으로 할당된 atomic 객체를 초기화하는 유일한 방법입니다. 예를 들어:
_Atomic int *p = malloc(sizeof(_Atomic int)); atomic_init(p, 42);
참고문헌
- C23 표준 (ISO/IEC 9899:2024):
-
- 7.17.2.2 The atomic_init generic function (p: TBD)
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.17.2.2 atomic_init 제네릭 함수 (p: 201)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.17.2.2 atomic_init 제네릭 함수 (p: 274-275)
참고 항목
|
(C11)
(C17에서 사용 중단됨)
(C23에서 제거됨)
|
새로운 atomic 객체를 초기화합니다
(함수 매크로) |
|
C++ documentation
for
atomic_init
|
|