Kürzlich bin ich auf einen Code gestoßen, der so aussah:
if(sizeof(var,2) == 4) { ... }
(wobei var
ist ein Typ)
Ich war ziemlich überrascht, als ich sah, dass es offenbar zwei Argumente für die sizeof
Betreiber. Ein kurzer Blick in die ISO/ANSI-Norm C99 ergab keine Geheimnisse. Ich konnte keine Lesart der Grammatik finden, die ein Komma an dieser Stelle zulässt.
Bei der Suche nach Google Code konnte ich Folgendes finden ein Beispiel dieser Syntax in einigen PPC-Codes.
Ist das eine PPC-spezifische Syntax? Was bedeutet sie?
EDITAR: Es stellt sich heraus, dass sowohl das, was ich mir angesehen habe, als auch der verlinkte Code eine spezifische Syntax für die WindRiver Diab Compiler :
Größe von (Typ, int-const):
Wenn int-const 0 ist Größe von gibt die Größe des Typs in Bytes zurück.
Wenn int-const gleich 1 ist Größe von gibt die Ausrichtung des Typs zurück.
Wenn int-const gleich 2 ist Größe von gibt eine ganzzahlige Konstante zurück, die den Typ von type. Schlagen Sie "sizeof operator" in der Diab C/C++ Benutzerhandbuch für Werte.
Wow, sie haben wirklich die Bedeutung des Wortes sizeof
Betreiber.
EDIT2: Die vollständige Dokumentation finden Sie hier: http://www.vxdev.com/docs/vx55man/diab5.0ppc/c-additi.htm#3001432