Fibonacci-Zahlenfolge
-
Vielen Dank. Hat geklappt :).
Okay weiß ich beim nächsten mal Bescheid .
Thread kann geschlossen werden
-
Incocnito schrieb:
Laut Standard muss int mind. 16 bits und long mind. 32 bits haben. Kann also sein, dass sizeof(int) = sizeof(long). long long geht bis 64 bits. Nimm long long. Und nehme andere Variablennamen als a, b, c und d. Der Name sollte sagen, wofür die Variable steht.
Ne. Der Standard gibt lediglich eine Ordnung vor:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Die könnten auf einem konformen System auch allesamtCHAR_BIT
groß sein.Wenn man (u)ints mit einer ganz bestimmten Größe will, so nehme man
std::uint32_t
und Konsorten aus<cstdint>
. Das sind auch viel ausdrucksstärkere Typnamen.
-
Fytch schrieb:
Incocnito schrieb:
Laut Standard muss int mind. 16 bits und long mind. 32 bits haben. Kann also sein, dass sizeof(int) = sizeof(long). long long geht bis 64 bits. Nimm long long. Und nehme andere Variablennamen als a, b, c und d. Der Name sollte sagen, wofür die Variable steht.
Ne. Der Standard gibt lediglich eine Ordnung vor:
sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
Die könnten auf einem konformen System auch allesamtCHAR_BIT
groß sein.Wenn CHAR_BIT == 64 ist, ja.
Der Standard gibt Mindestwertebereiche vor, die eben gewisse Wortbreiten implizieren.
-
Bashar schrieb:
Der Standard gibt Mindestwertebereiche vor, die eben gewisse Wortbreiten implizieren.
Kannst du sagen wo? Ich finde dazu nichts.
-
21.4.1[cstdint.syn]/2 i.V.m. 2[Intro.refs]/1.3
-
camper schrieb:
21.4.1[cstdint.syn]/2 i.V.m. 2[Intro.refs]/1.3
Auch ein 8 Bit int wäre danach theoretisch immer noch standardkonform. Man würde natürlich fragen was der Blödsinn soll, wenn es doch 64 Bit Typen gibt.
-
manni66 schrieb:
camper schrieb:
21.4.1[cstdint.syn]/2 i.V.m. 2[Intro.refs]/1.3
Auch ein 8 Bit int wäre danach theoretisch immer noch standardkonform.
Äh, nein?! Genau deshalb doch die Referenz auf den C-Standard. Wie willst Du alle Integer von -32767 bis +32767 in 8 Bit unterbringen?
-
SG1 schrieb:
manni66 schrieb:
camper schrieb:
21.4.1[cstdint.syn]/2 i.V.m. 2[Intro.refs]/1.3
Auch ein 8 Bit int wäre danach theoretisch immer noch standardkonform.
Äh, nein?! Genau deshalb doch die Referenz auf den C-Standard. Wie willst Du alle Integer von -32767 bis +32767 in 8 Bit unterbringen?
Und wo im C Standard steht das?
-
manni66 schrieb:
SG1 schrieb:
manni66 schrieb:
camper schrieb:
21.4.1[cstdint.syn]/2 i.V.m. 2[Intro.refs]/1.3
Auch ein 8 Bit int wäre danach theoretisch immer noch standardkonform.
Äh, nein?! Genau deshalb doch die Referenz auf den C-Standard. Wie willst Du alle Integer von -32767 bis +32767 in 8 Bit unterbringen?
Und wo im C Standard steht das?
N4659 schrieb:
21.4.1 Header <cstdint> synopsis [cstdint.syn]
[...]
2
The header defines all types and macros the same as the C standard library header <stdint.h>.
See also: ISO C 7.20.Welche Version des C Standards? :
N4659 schrieb:
2 Normative references [intro.refs]
[...]
(1.3) — ISO/IEC 9899:2011, Programming languages — C
-
Doch wohl eher 21.3.5 [climits.syn] in N4700 und dann limits.h
-
Hm, ja. Irgendwas mit ints eben