![]() |
C++ Konstantendeklaration
Hallo,
ich bin dabei mich mit C++ zu beschäftigen. Was bedeudet in einer Deklaration 1L? L steht für long das ist klar. Die 1 könnte ich mir auch erklären. Ich finde aber überall bei MSDN 1L, 2L, 5L oder 1111L Kann mir das jemand erklären? Danke |
Re: C++ Konstantendeklaration
Du hast es doch eigentlich schon, das L bedeutet, dass das Literal den Typ long hat. Genauso bedeutet 1f, dass es sich um einen float handelt, und nicht um einen Integer-Typ, und 1.0f bedeutet, dass es ein float ist und nicht ein double, was der Standard für Fließkommaliterale ist.
|
Re: C++ Konstantendeklaration
Hallo,
was bedeudet dann das? Zitat:
Grüsse (ich glaub ich bleib doch bei Delphi) |
Re: C++ Konstantendeklaration
Das soll vermutlich bedeuten, dass ERROR_END_OF_MEDIA den Wert 1100 vom Typ long hat, und ERROR_FILEMARK_DETECTED hat den Wert 1101L ^^
|
Re: C++ Konstantendeklaration
Aha,
dein "vermutlich" hat dich wahrscheinlich genauso verunsichert wie mich. Das nächste Problem, wenn's so wäre wie du sagst, was sind das für Zahlen? Hex dez bin? Wenn man sich die Doku anschaut findet man alle Ziffern von 0 bis 9 Diese Darstellung scheint für Microsoft normal zu sein. Für mich allerdings nicht. Microsoft benutzt das flächendeckend in der ganzen MSDN Doku. Mein Beispiel stammt aus Erasetape. Grüsse |
Re: C++ Konstantendeklaration
Das ist für jeden C-Programmierer normal und es ist natürlich dezimal. Für Hex muss man ein 0x voranstellen, für Oktal eine 0, und binär gibt es im C-Standard glaube ich nicht, sondern lediglich in diversen Compilern, typischerweise als 0b-Präfix. Ohne Präfix ist es immer dezimal. Das Suffix hingegen gibt immer den Typ an. Das "vermutlich" bezog sich darauf, dass ich keine Ahnung habe, wo du dein Zitat her hast, ich ging von der Dokumentation aus.
Davon abgesehen kann es dir in diesem Fall sogar egal sein, wie der Wert ist, du sollst ja ohnehin die Konstanten benutzen und nicht die Literale :) |
Re: C++ Konstantendeklaration
Hallo,
wie soll ich denn Konstanten benutzen wenns die nicht gibt? (Zumindest in Delphi nicht). Wenn ich eigene Konstanten benutzen will muss ich die doch irgendwo definieren und dazu muss ich den Wert wissen. Ist doch in C genauso oder? Vielen Dank und liebe Grüsse |
Re: C++ Konstantendeklaration
Wo liegt denn dann dein Problem? Die Werte hast du doch? Davon abgesehen brauchen deine Konstanten in Delphi nicht unbedingt einen expliziten Typ. In C (nicht C++) definiert man Konstanten typischerweise mithilfe des Präprozessors, d.h. sie werden im Quelltext durch das Literal ersetzt, deshalb gibt man gegebenenfalls besonders für Aufzählungen, die nicht als enum definiert sind, den Typ explizit im Literal mit an.
|
Re: C++ Konstantendeklaration
Hallo,
das Problem ist so einfach, dass man normalerweise nicht darüber nachdenkt. Ich bin seit Jahren professioneller Programmierer (ASM, Delphi2,7,2005 Fortran, Algol60 Pearl...). Kann alle möglichen anderen Programmiersprachen aber leider C und C++ nicht. So. Wenn ich jetzt die Syntax sehe die MSDN benutzt, woher soll ich denn wissen was 1011L bedeudet. Das L konnte ich noch raten oder aus einem C Programm rausklauben. Also dacht ich mir das ist Binär dargestellt. Bis ich auf 1017L gestossen bin. Binär kanns nicht sein. Ist das Ganze oktal oder dezimal oder Hex? Mein Fehler ist, das geb ich zu, dass ich C oder C++ nur gaaaanz rudimentär kann. Hellsehen kann ich noch nicht. Das war mein Problem, das du ja glücklicherweise gelöst hast. Ich dank dir nochmal! (Wir sollten die Diskussion beenden. Mir ist geholfen und das ist das wichtigste) viele Grüsse |
Re: C++ Konstantendeklaration
Moin WS1976,
eine Referenz zu C/C++ gibt's, abgesehen von der Online-Version auf MSDN, auch im Zuge der Installation des Visual C++ 2005 Express. Das konnte man mal kostenlos bei MS herunterladen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz