AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

C++ Konstantendeklaration

Ein Thema von WS1976 · begonnen am 20. Mai 2007 · letzter Beitrag vom 20. Mai 2007
Antwort Antwort
Seite 1 von 2  1 2      
WS1976
(Gast)

n/a Beiträge
 
#1

C++ Konstantendeklaration

  Alt 20. Mai 2007, 08:34
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
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 09:00
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.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#3

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 09:41
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)
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#4

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 09:48
Das soll vermutlich bedeuten, dass ERROR_END_OF_MEDIA den Wert 1100 vom Typ long hat, und ERROR_FILEMARK_DETECTED hat den Wert 1101L ^^
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#5

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 09:56
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
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#6

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 09:58
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
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#7

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 14:49
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
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#8

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 14:51
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.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
WS1976
(Gast)

n/a Beiträge
 
#9

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 15:14
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
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: C++ Konstantendeklaration

  Alt 20. Mai 2007, 15:21
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:23 Uhr.
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