Warum ist dieser Code ungültig?typedef und nicht einfach Typdeklarierer
typedef int INT;
unsigned INT a=6;
während des folgenden Code gültig
typedef int INT;
static INT a=1;
?
Nach meinem Verständnis unsigned int
ist kein "simple type specifier"
und so ist der Code schlecht gebildet. Ich bin mir allerdings nicht sicher.
Kann jeder Punkt auf dem entsprechenden Abschnitt des Standard
, die den ersten Code ungültig ist (und den zweiten Code gültig) macht?
EDIT
Obwohl Johannes Schaub's Antwort richtig und auf den Punkt zu sein schien (er hatte BTW seine Antwort gelöscht) Ich James Curran Antwort auf ihre Richtigkeit und Genauigkeit übernommen.
Aus Neugier, warum würden Sie das tun? Es gibt nicht viel Grund für diese Neudefinition. 'typedef unsigned int UINT;' könnte jedoch mehr Sinn machen ... – JAB
Ja JAB Ich weiß das, eigentlich würde ich solchen Code praktisch nie schreiben. Aber ich bin neugierig, warum funktioniert der erste Code nicht? Also wurde die Frage auch mit 'Sprachanwalt' getaggt. –
Ich weiß, das ist nicht das primäre Thema, aber Sie können schreiben "std :: make_unsigned :: type" (siehe http://msdn.microsoft.com/en-us/library/ee361636.aspx?ppud=4) –
Tomaka17