https://gcc.gnu.org/onlinedocs/gcc/_005f_005fatomic-Builtins.html 에 따르면 다음이 있습니다 .
type __atomic_load_n (type *ptr, int memorder)
및 ( "일반") :
void __atomic_load (type *ptr, type *ret, int memorder)
그때
void __atomic_store_n (type *ptr, type val, int memorder)
및 ( "일반")
void __atomic_store (type *ptr, type *val, int memorder)
기타
후자의 버전에 대한 일반 사항 (이전 버전에 대한 일반 사항이 아님)은 무엇이고 왜 필요한가요?
'__atomic'내장 기능은 길이가 1, 2, 4 또는 8 바이트 인 정수 스칼라 또는 포인터 유형과 함께 사용할 수 있습니다. 아키텍처에서 '__int128'(__ int128 참조)을 지원하는 경우 16 바이트 정수 유형도 허용됩니다.
네 가지 비 산술 함수 (로드, 저장, 교환 및 compare_exchange) 모두 일반 버전도 있습니다. 이 일반 버전은 모든 데이터 유형에서 작동합니다. 특정 데이터 유형 크기로 가능하면 잠금없는 내장 함수를 사용합니다. 그렇지 않으면 외부 호출이 런타임에 해결되어야합니다. 이 외부 호출은 가리키는 객체의 크기를 나타내는 첫 번째 매개 변수로 삽입 된 'size_t'매개 변수가 추가 된 동일한 형식입니다. 모든 개체는 동일한 크기 여야합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다