Seite 1 von 1
Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 15:49
von mbergmann_sh
Unter C kann ich die untere und obere Grenze eines Datentyps ausgeben lassen:
Code: Alles auswählen
printf("int-Wert mindestens : %d\n", INT_MIN);
printf("int-Wert maximal : %d\n", INT_MAX);
Definiert sind diese Werte als Konstanten in limits.h. Gibt es unter PureBasic ebenfalls einen Weg, um eine solche Ausgabe zu bewerkstelligen?
Re: Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 15:54
von mk-soft
Nein.
Steht in der PB-Hilfe und ist Grundlagenwissen die man irgendwann in Kopf hat
Update 3
Code: Alles auswählen
; Limits
#INT_MIN = -$80000000
#INT_MAX = $7FFFFFFF
CompilerSelect #PB_Compiler_Processor
CompilerCase #PB_Processor_x86
#INTEGER_MIN = -$80000000
#INTEGER_MAX = $7FFFFFFF
CompilerCase #PB_Processor_Arm32
#INTEGER_MIN = -$80000000
#INTEGER_MAX = $7FFFFFFF
CompilerCase #PB_Processor_x64
#INTEGER_MIN = -$8000000000000000
#INTEGER_MAX = $7FFFFFFFFFFFFFFF
CompilerCase #PB_Processor_Arm64
#INTEGER_MIN = -$8000000000000000
#INTEGER_MAX = $7FFFFFFFFFFFFFFF
CompilerEndSelect
#BYTE_MIN = -$80
#BYTE_MAX = $7F
#WORD_MIN = -$8000
#WORD_MAX = $7FFF
#LONG_MIN = -$80000000
#LONG_MAX = $7FFFFFFF
#QUAD_MIN = -$8000000000000000
#QUAD_MAX = $7FFFFFFFFFFFFFFF
#UNSIGNED_BYTE_MIN = $00
#UNSIGNED_BYTE_MAX = $FF
#UNSIGNED_WORD_MIN = $0000
#UNSIGNED_WORD_MAX = $FFFF
Debug #BYTE_MIN
Debug #BYTE_MAX
Debug #WORD_MIN
Debug #WORD_MAX
Debug #LONG_MIN
Debug #LONG_MAX
Debug #QUAD_MIN
Debug #QUAD_MAX
Re: Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 16:37
von STARGÅTE
Äm, da steht "IMT_MAX " statt INT.
Zum andere musst du bei Sache wie #WORD_MIN = $8000 ein Minus schreiben, sonst ist die Konstante (die ja kein Typ hat!) positiv.
Re: Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 16:44
von mbergmann_sh
Super! Das hast jetzt aber Du selbst zusammengehackt, d.h. es ist nicht irgendwo in den PB-Includes vergraben?! Besten Dank dafür!

Mit dem Stichwort "Limits" wird mir in der Online-Hilfe zu 6.0LT übrigens nix angezeigt...
Re: Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 16:51
von mk-soft
@STARGATE
hast recht. Somit gibt es weniger Probleme beim type casting. Update 3
@mbergmann_sh
siehe PB-Hilfe 'Variablen, Typen und Operatoren'
Re: Wertebereich eines Datentyps ausdrucken
Verfasst: 29.01.2023 17:15
von Benubi
Einen schönen Sonntag allerseits,
Das sind quasi "Low Level" Sachen aus C. Derartiges wird in der Hilfe nur selten (? gar nicht ?) angesprochen. Wenn Du als "forgeschrittener Programmierer" gillst, weißt Du vermutlich schon in welche .h Header Dateien Du nachschauen musst, oder wie solche Low Level Werte zu Stande kommen. Im /SDK/ Verzeichnis gibt es aber u.U. mehr Low Level Zeugs zu anschauen/ausprobieren. Aber das Backend und OS können sich ja ändern. PB ist eine Hochsprache mit einfachem Low Level Zugang. Glücklicherweise ist die C Syntax nah an PB, und es lassen sich viele Sachen einfach portieren.
Wenn Du in der Hilfe unter Primitiven Datentypen nachschaust stehen auch die minimal/maximal Wertebereiche. Variables, Types and Operators - in der Englischen Fassung (hat mk-soft auch schon geschrieben, wie ich feststelle).