Die Anzahl der Token in der folgenden C-Anweisung.Anzahl der Token in c-Anweisungen berechnen
print("℅d",a+=b);
Kann jemand mir sagen, ob +=
Betreiber in Betracht gezogen werden sollten als ein Token oder zwei Token
Die Anzahl der Token in der folgenden C-Anweisung.Anzahl der Token in c-Anweisungen berechnen
print("℅d",a+=b);
Kann jemand mir sagen, ob +=
Betreiber in Betracht gezogen werden sollten als ein Token oder zwei Token
In einem C-Quellprogramm, das grundlegende vom Compiler erkannte Element ist die „Token“. Ein Token ist Quelltext, den der Compiler nicht in Komponentenelemente zerlegt.
Grundsätzlich ist +=
eine abgekürzte Operator, der Compiler es als ein einzelnes Token
Für Ex behandelt:
x+=10;
x = x + 10;
Beide oben Codes sind gleiche, in der ersten Zeile des Codes der Compiler wird als ein Token behandelt, wo es in der Sekunde als zwei Token behandelt wird.
Weitere Informationen über Token C tokens
auf dem C11-Standard nach, §6.4.6 Interpunktionszeichen, die 'Interpunktionszeichen' in C:
[ ] () { } . ->
++ -- & * + - ~ !
/% << >> < > <= >= == !=^| && ||
? : ; ...
= *= /= %= += -= <<= >>= &= ^= |=
, # ##
<: :> <% %> %: %:%:
Wie Sie sehen können, +=
eines von die Interpunktionszeichen - es ist ein einzelnes Token.
Nein; das ist falsch. '+ =' ist ein einzelnes Token. So ist '>> ='. –
Ich habe meine Antwort bearbeitet –
So sehe ich. Ich bin mir nicht sicher über die Bedeutung von "Compiler bricht es als nur ein Token". Ich denke, ich wäre glücklicher, wenn Sie etwas wie _Denn obwohl '+ =' ein Shorthand-Operator ist, behandelt der Compiler es als ein einzelnes Token._ Beachten Sie auch, dass in einem Kontext wie 'data [i ++] -> member + = 10; 'Das Ergebnis ist nicht dasselbe wie 'data [i ++] -> member = data [i ++] -> member + 10;'. Zumindest ist die '+ =' Version ein definiertes Verhalten und die erweiterte Version nicht. –