atomic_load, atomic_load_explicit
|
헤더 파일에 정의됨
<stdatomic.h>
|
||
|
C atomic_load
(
const
volatile
A
*
obj
)
;
|
(1) | (C11 이후) |
|
C atomic_load_explicit
(
const
volatile
A
*
obj,
memory_order
order
)
;
|
(2) | (C11 이후) |
obj
가 가리키는 원자 변수의 현재 값을 원자적으로 로드하여 반환합니다. 이 연산은 원자적 읽기 연산입니다.
첫 번째 버전은 메모리 접근을
memory_order_seq_cst
에 따라 정렬하며, 두 번째 버전은 메모리 접근을
order
에 따라 정렬합니다.
order
는 반드시
memory_order_relaxed
,
memory_order_consume
,
memory_order_acquire
또는
memory_order_seq_cst
중 하나여야 합니다. 그렇지 않으면 동작이 정의되지 않습니다.
이것은 모든
generic function
에 대해 정의된
atomic object types
A
입니다. 인자는 volatile 및 비-volatile 모두의 주소를 수용하기 위해 volatile atomic 타입에 대한 포인터이며,
volatile
atomic 객체에 이 연산을 적용할 때 volatile 의미론이 유지됩니다(예: 메모리 매핑된 I/O).
C
는
A
에 해당하는 비-atomic 타입입니다.
제네릭 함수의 이름이 매크로인지 외부 링크를 가진 식별자로 선언되었는지는 명시되지 않습니다. 실제 함수에 접근하기 위해 매크로 정의를 억제하는 경우(예: ( atomic_load ) ( ... ) 와 같이 괄호로 묶은 경우), 또는 프로그램이 제네릭 함수의 이름으로 외부 식별자를 정의하는 경우, 그 동작은 정의되지 않습니다.
목차 |
매개변수
| obj | - | 접근할 원자적 객체에 대한 포인터 |
| order | - | 이 연산에 대한 메모리 동기화 순서 |
반환값
obj
가 가리키는 원자 변수의 현재 값.
참고문헌
- C17 표준 (ISO/IEC 9899:2018):
-
- 7.17.7.2 atomic_load 제네릭 함수 (p: 206)
- C11 표준 (ISO/IEC 9899:2011):
-
- 7.17.7.2 atomic_load 제네릭 함수 (p: 282)
참고 항목
|
원자적 객체에 값을 저장합니다
(함수) |
|
|
C++ documentation
for
atomic_load
,
atomic_load_explicit
|
|