Was soll mit der Negation eines size_t geschehen (d. H. `-Sizeof (struct foo)`))?
Ich habe es bei der Arbeit mit Code zu tun, der einen Ausdruck des Formulars enthält
-(sizeof(struct foo))
d.h. die Negation von asize_t
, und ich bin nicht sicher, was die C- und C ++ - Standards von Compilern verlangen, wenn sie dies sehen. Insbesondere von hier und anderswo suchen,sizeof
Gibt einen vorzeichenlosen Integralwert vom Typ zurücksize_t
. Ich kann keine eindeutige Referenz für das angegebene Verhalten finden, wenn ich eine Ganzzahl ohne Vorzeichen negiere. Gibt es welche und wenn ja, welche?
Edit: Ok, es gibt also einige gute Antworten bezüglich der Arithmetik für nicht vorzeichenbehaftete Typen, aber es ist nicht klar, dass dies tatsächlich so ist. Wenn dies negiert wird, wird eine ganze Zahl ohne Vorzeichen verarbeitet oder es wird in einen vorzeichenbehafteten Typ konvertiert und etwas damit unternommen? Ist das von den Standards zu erwartende Verhalten "Stellen Sie sich vor, es ist die negative Zahl mit ähnlicher Größe und wenden Sie dann die Überlaufregeln für vorzeichenlose Werte an"?