3 Stimmen

Sind die atomic builtins, die von gcc zur Verfügung gestellt werden, tatsächlich in den Beispielcode übersetzt, oder ist das nur für illustrative Zwecke?

Ich habe also gelesen http://gcc.gnu.org/onlinedocs/gcc-4.1.0/gcc/Atomic-Builtins.html und stieß auf dies:

type __sync_and_and_fetch (type *ptr, type value, ...)
type __sync_xor_and_fetch (type *ptr, type value, ...)
type __sync_nand_and_fetch (type *ptr, type value, ...)
These builtins perform the operation suggested by the name, and return the new value. That is,
      { *ptr op= value; return *ptr; }
      { *ptr = ~*ptr & value; return *ptr; }   // nand

Ist dieser Code wörtlich? oder ist es nur zu erklären, was gcc tut atomar mit C-ähnliche Syntax? Und wenn dies die direkte Übersetzung ist, kann jemand erklären, wie es atomar ist?

1voto

JayM Punkte 4596

Nein. Der Code dient nur zur Veranschaulichung der Funktionsweise der Funktionen.

Die atomaren Funktionen sind nicht in c geschrieben, sondern in der Assemblersprache der jeweiligen Architektur. Da einige Architekturen nicht über die notwendigen Anweisungen zur Implementierung der atomaren Operationen verfügen, sind nicht alle Operationen auf jeder Architektur gültig.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X