Frage What does the "L" mean at the end of an integer literal? beschreibt, was L
bedeutet am Ende von Int Literal. Ich bin verwirrt warum nicht long int i = 33
anstelle von int i = 33L
angeben? Das gleiche gilt für andere Typen. Anstatt double b = 3.0L
anzugeben, warum nicht long double
schreiben?C++ Suffix L vs Angabe lange Doppel
0
A
Antwort
2
Ich bin verwirrt, warum nicht lange int i = 33 anstelle von int i = 33L angeben?
Denn die 2 Aussagen bedeuten 2 verschiedene Dinge:
long int i = 33; // take constant of type int, convert it to long int and assign to i.
int i = 33L; // take constant of type long int, convert it to int and assign to i.
So beenden Sie mit variabler i
unterschiedlicher Art auf. Gleiches gilt für das Double in Ihrem Beispiel.
1
Obwohl Sie sich in vielen Fällen auf die extrem gut definierten erweiternden Konvertierungsregeln verlassen können, müssen Sie manchmal explizit den Typ eines Literals angeben.
Zum Beispiel
long double f = 1.0;
f = std::max(f, 2.0L);
kompilieren nicht, wenn die Argumente von max
denselben Typ haben. Schreiben double b = 3.0L
wäre in der Tat sinnlos, und ein Compiler wird Sie wahrscheinlich ignorieren und kompilieren double b = 3.0
.
Verwandte Themen
- 1. C++ Doppel zu lange lange
- 2. Lange Doppel in C
- 3. Suffix Arrays vs Suffix Bäume
- 4. Doppel vs Dezimalrundungsverfahren in C#
- 5. C++ fabs (lange Doppel) Compiler Warnung
- 6. printf und lange Doppel
- 7. Warum wird lange ohne Suffix angenommen
- 8. Syntax offener Werte \ command \ shell -% 1 vs% l vs% L
- 9. Ausgang lange Doppel auf Konsole
- 10. Sind Long-Suffix und Unsigned-Suffix erforderlich, wenn lange Literale in C++ deklariert werden?
- 11. Doppel Klammern [[]] vs Doppel Klammern {{}} in Polymer
- 12. Warum brauchen wir nicht lange in Java Suffix?
- 13. UL Suffix vs uint32_t werfen
- 14. TSLint Doppel vs Dreifachgleichheit
- 15. C# -Suffix hinter numerischem Literal
- 16. Warum haben Integer im Datenbank-Tupel ein "L" -Suffix?
- 17. gcc Linker Fehler trotz Angabe -l Flag für libusb-1.0
- 18. lange lange in C/C++
- 19. Suffix Trie in C++
- 20. Single vs Doppel verlinkte Liste
- 21. Groovy - Verwirrung Doppel vs float
- 22. Java Raytracing Float vs Doppel
- 23. Suffix für Zufallsgenerator in C nicht gefunden
- 24. polling vs lange polling
- 25. Printf von langen Doppel unbekannten Umwandlungstyp Zeichen L
- 26. Wert von Doppel vs long double in C++
- 27. C++ Erzeugen eines Doppel zwischen 2 Doppel
- 28. C Segmentation Fault ohne Angabe von Gründen
- 29. serialVersionUID ohne L, xxxxxxxxxxxxxxxxxL vs 1L, positiv vs. negativ
- 30. Anfügen long double literal Suffix auf Benutzereingaben in C++
http://en.cppreference.com/w/cpp/language/integer_literal – user0042
Manchmal weisen Sie eine Variable nicht zu, sondern verwenden sie als Ausdruck in einem Ausdruck. Dies kann verwendet werden, um beispielsweise eine Erweiterung der Konvertierung zu erzwingen. – cdhowie
Wenn Sie anstelle eines bestimmten Typs "auto" verwenden, leitet das Literal den richtigen Typ ab. – user0042