unsigned int
-
hab das mal in einem code gesehen was hat das l für eine bedeutung in bücheren hab ich dazu nichts gefunden oder ist das ein fehler?
unsigned int = 123234l
-
das l (oder besser L, erkennt man schneller) steht für long. Es erzwingt also, dass eine Ganzzahlkonstante als long int erkannt wird, obwohl sie in den Wertebereich von int passen würde. Für unsigned gibt es u bzw. U.
-
Wenn man l oder L anhängt bedeutet dies, das diese Zahl als long dargestellt werden soll und nicht als int. Dies kann anderen Maschinencode erzeugen
-
unsigned int = 123234l; ist dasselbe wie
unsigned int = (long)123234;Ich sehe jedoch keinen Sinn, weshalb in einen long int gecastet wird. Intern wird es später sowieso in ein unsigned int gecastet.
-
gh0st124 schrieb:
unsigned int = 123234l; ist dasselbe wie
unsigned int = (long)123234;Nope. Auf Plattformen, auf denen MAX_INT < 123234 ist, produzieren beide Varianten unterschiedliche Ergebnisse.
-
SG1 schrieb:
Nope. Auf Plattformen, auf denen MAX_INT < 123234 ist, produzieren beide Varianten unterschiedliche Ergebnisse.
Nein, der Typ dieses integer-Literales wär dann einfach long int, auch ohne angehängtes L. Siehe 2.13.1§2, die Regeln sind recht umfangreich, der Typ hängt vom Suffix, vom Wert sowie von der angegeben Basis ab.
-
SG1 schrieb:
gh0st124 schrieb:
unsigned int = 123234l; ist dasselbe wie
unsigned int = (long)123234;Nope. Auf Plattformen, auf denen MAX_INT < 123234 ist, produzieren beide Varianten unterschiedliche Ergebnisse.
Stimmt nicht. Falls die Zahl größer ist als MAX_INT dann wandelt der Compiler intern automatisch die Zahl in ein long!
-
Bashar schrieb:
SG1 schrieb:
Nope. Auf Plattformen, auf denen MAX_INT < 123234 ist, produzieren beide Varianten unterschiedliche Ergebnisse.
Nein, der Typ dieses integer-Literales wär dann einfach long int, auch ohne angehängtes L.
Hast Recht, Sorry fuers Bloedsinn labern.
Btw: Hast Du 'ne andere Ausgabe des Standards als ich? Bei mir stehts unter 6.4.4.1, Abschnitt 2 beschaeftigt sich mit "normative References" (Unterschied ANSI/ISO?)
-
SG1 schrieb:
Btw: Hast Du 'ne andere Ausgabe des Standards als ich? Bei mir stehts unter 6.4.4.1, Abschnitt 2 beschaeftigt sich mit "normative References" (Unterschied ANSI/ISO?)
Sorry, hab auch Blödsinn gelabert. Ich hab im C++ Standard geguckt. Glücklicherweise scheinen die Regeln ja die gleichen zu sein
-
Wo bekomme ich die Standards für C und C++(ich nehme an: pdf-Dateien) her?
-
Entweder auf www.ansi.org für $18 das Stück kaufen, oder den Final Draft nehmen. Den für C99 findet man, wenn man nach "n869" googelt. Den für C++98 gibts hier: http://anubis.dkuug.dk/jtc1/sc22/open/n2356/
-
Jo danke für die Links. Leider keine pdf-Seite...
-
@gh0st124
wenn man wie Bashar sagt, nach "n869" sucht, findet man z.b. das hier:
http://www.cs.technion.ac.il/users/yechiel/CS/C-draft/n869.pdf
und bei der suche nach "n2356" findet man z.b.:
http://ulita.ms.mff.cuni.cz/pub/techdoc/ansic/cpp97.pdf
-
sorry, mein greedy-Algorithmus hat mich zu den Links geleitet