Ich erhalte eine Warnung für diesen C-Ausdruck:
%Vor%Die Warnung lautet:
%Vor%Ich denke, der Ausdruck sollte so geändert werden:
%Vor%Wird das Verhalten (nach der Änderung) wie beabsichtigt aussehen? Ich würde denken, dass die Zeigerzunahme geschehen sollte, nachdem der Wert, auf den durch p0 gezeigt wird, aktualisiert worden ist.
Das oben bereitgestellte Snippet ruft nicht definiertes Verhalten auf. Gemäß C-Norm
Wenn ein Nebeneffekt auf ein Skalarobjekt relativ zu nicht sequenziert ist, wird entweder ein anderer Nebeneffekt für dasselbe Skalarobjekt oder eine Wertberechnung mit dem Wert desselben Skalarobjekts , das Verhalten ist nicht definiert. Wenn es mehrere zulässige Ordnungen der Teilausdrücke eines Ausdrucks gibt, ist das Verhalten undefiniert, wenn solch ein nicht-sequenzierter Nebeneffekt in irgendeiner der Reihenfolgen auftritt. 84 .
Im Ausdruck *p0++ = mult(*p0, psign[i1])
wird die Änderung in p0
auf der linken Seite des Zuweisungsoperators nicht vor oder nach der Verwendung von p0
auf der rechten Seite des Ausdrucks sequenziert. Daher das Snippet
entspricht nicht
%Vor%Tags und Links c prefix-operator