C11 Standard besagt, dass für die Atomtypen (_Atomic), Präfix und Postfix ++
und --
Operationen are atomic, ebenso wie Verbindung Zuordnungen (6.5.2.4, P2.): op=
(6.5.16.2, p3) .Atomicity des einfachen Zuweisungsoperators
Ich habe nichts über eine einfache Aufgabe =
geschrieben geschrieben. Ist es auch Atom?
Sagen wir, E1, E2 sind int
, aber nur E1 ist mit dem Spezifizierer _Atomic definiert. Meine Vermutung ist, dass dies:
E1 = E2;
entspricht:
atomic_store(&E1 , E2);
Es ist meine Vermutung richtig?
Wie kann das _not_ atomar sein. Welcher Zustand ist zwischen 'gesetzt' und 'nicht festgelegt'? –
@WernerVanBelle Dies ist aus der Sicht des Standards. Stellen Sie sich eine abstrakte Maschine vor. – 2501
@WernerVanBelle Bei Atmel mit avr-gcc, zum Beispiel, wenn Sie eine 16-Bit-Variable setzen, wird zuerst das High-Byte und dann das Low-Byte gesetzt. – Ctx