Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   C++ Konstantendeklaration (https://www.delphipraxis.net/92459-c-konstantendeklaration.html)

WS1976 20. Mai 2007 08:34


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

OregonGhost 20. Mai 2007 09:00

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.

WS1976 20. Mai 2007 09:41

Re: C++ Konstantendeklaration
 
Hallo,
was bedeudet dann das?

Zitat:

ERROR_END_OF_MEDIA
1100L The end-of-tape marker was reached during an operation.
ERROR_FILEMARK_DETECTED
1101L
kapier ich nicht!

Grüsse
(ich glaub ich bleib doch bei Delphi)

OregonGhost 20. Mai 2007 09:48

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 ^^

WS1976 20. Mai 2007 09:56

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

OregonGhost 20. Mai 2007 09:58

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 :)

WS1976 20. Mai 2007 14:49

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

OregonGhost 20. Mai 2007 14:51

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.

WS1976 20. Mai 2007 15:14

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

Christian Seehase 20. Mai 2007 15:21

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:05 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz