Buchempfehlung
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Mikrocomputertechnik mit Controllern der Atmel AVR-RISC-Familie
Umfassend, aber leicht verständlich führt dieses Buch in die Programmierung von ATMEL AVR Mikrocontrollern ein. [Mehr Infos...]
FreeBASIC-Chat
Es sind Benutzer im FreeBASIC-Chat online.
(Stand:  )
FreeBASIC bei Twitter
Twitter FreeBASIC-Nachrichten jetzt auch über Twitter erhalten. Follow us!

fb:porticula NoPaste

Info
Info / Hilfe
Liste
Übersicht / Liste
Neu
Datei hochladen
Suche
Quellcode suchen
Download
Dateidownload

FB NULL

Uploader:RedakteurMOD
Datum/Zeit:04.12.2015 12:12:15

'Helfer Makros
#Define NULL Cast(Any Ptr, 0)

#Define ByRefNull(variable) *Cast(TypeOf(variable) Ptr, 0)
#Define SetNull(variable) @variable = Cast(TypeOf(variable) Ptr, 0)
#Define CheckNull(variable) IIf(@variable = Cast(TypeOf(variable) Ptr, 0), TRUE, FALSE)

#Define CreateByRef(variable) *(New TypeOf(variable))
#Define CreateByRefValue(variable, value) *(New TypeOf(variable)) : variable = value
#Define FreeByRef(variable) Delete @variable : @variable = Cast(TypeOf(variable) Ptr, 0)


'NULL-Initialisierung und erste Abfrage
Dim ByRef As Integer foo = ByRefNull(foo)

If CheckNull(foo) Then
    Print "ist null", @foo
Else
    Print "ist nicht null", foo, @foo
EndIf


'Tatsächlichen Wert setzen
Dim As Integer bar = 5
@foo = @bar 'Syntax ist bisschen seltsam, aber doch logisch und was besseres fällt mir auch nicht ein

If CheckNull(foo) Then
    Print "ist null", @foo, @bar
Else
    Print "ist nicht null", foo, @foo, bar, @bar
EndIf


'Und nochmal NULL setzen
SetNull(foo)

If CheckNull(foo) Then
    Print "ist null", @foo
Else
    Print "ist nicht null", foo, @foo
EndIf


'Neue ByRef Variable erstellen
Dim ByRef As Integer foobar = CreateByRefValue(foobar, 7) 'oder schlicht CreateByRef(foobar)

If CheckNull(foobar) Then
    Print "ist null", @foobar
Else
    Print "ist nicht null", foobar, @foobar
EndIf


'Und gleich wieder zerstören
FreeByRef(foobar)

If CheckNull(foobar) Then
    Print "ist null", @foobar
Else
    Print "ist nicht null", foobar, @foobar
EndIf


Sleep