Seite 1 von 1

Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 19:16
von GPI
bei 64 Bit?

Ich geh davon aus, das INT bei VisualBasic auch bei 64Bit immer noch 32Bit ist und nicht 64 Bit.

Re: Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 19:25
von bizzl
Ich gehe davon aus, das du die Datenlänge meinst:

Siehe in der Hilfe unter "Variablen, Typen und Operatoren"

Unter 32 bit Systemen ist int 4 Byte (32 bit) breit,
unter 64 bit Systemen ist int 8 Byte (64 bit) breit.

Wenn du 32 bit (also 4 Byte) brauchst, dann benutze long, das ist immer 4 Byte breit.

Re: Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 19:34
von GPI
Ne das mein ich nicht und ich Weis, das in PureBasic je nach Prozessor das auch so ist.

Wie sieht es aber bei VisualC++ aus? Wenn dort in Strukturen INT bzw. bei API-Functionen/Methoden INT verwendet wird.

Re: Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 20:02
von ts-soft
Wenn nicht anders definiert, ist ein C INT = PB Long, auch unter 64-Bit, bei allen üblichen Compilern.

Aber das ist jetzt nicht in Stein gemeiselt!

Re: Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 21:13
von GPI
ts-soft hat geschrieben:Wenn nicht anders definiert, ist ein C INT = PB Long, auch unter 64-Bit, bei allen üblichen Compilern.

Aber das ist jetzt nicht in Stein gemeiselt!
Danke. Jup ich weis, quasi der "Designfehler" von C. Genormt, aber jeder Compiler darf es anders handhaben :)

Re: Welches Format hat das C INT in Purebasic

Verfasst: 05.05.2017 21:39
von Shardik
Bei 64 Bit C-Compilern hängt es vom Betriebssystem ab. Windows verwendet das LLP64-Datenmodell, Linux und MacOS das LP64-Datenmodell. Ein int unter Windows Visual C++ und in Linux/MacOS besteht immer aus 32 Bit, bei long ist die Bitbreite verschieden: Windows 32 Bit, Linux/MacOS 64 Bit.

Dieser Wikipedia-Artikel beschreibt 64-Bit Data Models und fasst die Infos in einer Tabelle zusammen.