Seite 2 von 2

Verfasst: 08.05.2007 19:53
von Kai
Da muss ich wohl eingestehen das ich wirklich einiges total verdreht habe,
bzw. nicht wirklich bescheid wusste.
Aber ihr habt mir wirklich weitergeholfen und ich denke das ich es gepeilt habe.
Deshalb auch vielen Dank an alle für die Hilfestellung. :allright:
Ich werd mich aber damit noch genauer beschäftigen um mehr Hintergrundwissen zu ergattern.
Kennt jemand evtl. noch ein gutes Buch oder so wo es genauer erklärt wird?
Ansonten nochmal big thx, ihr seit spitze! :D

Verfasst: 08.05.2007 20:44
von Ligatur
Kaeru Gaman hat geschrieben:
a14xerus hat geschrieben:Das hat auch nichts mit einer Initialisation (Init()) zu tun, da Structuren sowieso schon zur Compilezeit "umgewandelt" werden.
das genau ist der punkt. [...]
So ganz stimmt das ja eigendlich nicht. Strukturen sind eigendlich nur Bauanleitungen die erst mit der Definition einer Variablen zum Leben erweckt werden und somit nicht wirklich direkt in Code umgewandelt werden.

Verfasst: 08.05.2007 20:49
von a14xerus
Ligatur hat geschrieben:
Kaeru Gaman hat geschrieben:
a14xerus hat geschrieben:Das hat auch nichts mit einer Initialisation (Init()) zu tun, da Structuren sowieso schon zur Compilezeit "umgewandelt" werden.
das genau ist der punkt. [...]
So ganz stimmt das ja eigentlich nicht. Strukturen sind eigentlich nur Bauanleitungen die erst mit der Definition einer Variablen zum Leben erweckt werden und somit nicht wirklich direkt in Code umgewandelt werden.
Strukturierte Variablen
oder
Variablen mit Struktur
oder sowas..
man kann ja auch kleinkariert sein :doh: :wink:

Verfasst: 08.05.2007 23:36
von ZeHa
So ganz stimmt das ja eigendlich nicht. Strukturen sind eigendlich nur Bauanleitungen die erst mit der Definition einer Variablen zum Leben erweckt werden und somit nicht wirklich direkt in Code umgewandelt werden.

Mit Defined(bla, #PB_Structure) wird aber abgefragt, ob die STRUKTUR definiert wurde, und nicht ob eine Variable definiert wurde. Und die Struktur wurde definiert, d.h. der Compiler weiß darüber bescheid und gibt Dir ein "jawohl" zurück.

Verfasst: 09.05.2007 01:52
von Kaeru Gaman
ist aber ebenso wie SizeOf() eine Compilerdirektive/funktion und keine Laufzeitfunktion,
wird also zur kompilezeit durch eine konstante ersetzt.

zur laufzeit wird kein wert zurückgegeben, sondern nur eine konstante interpretiert.

Verfasst: 09.05.2007 07:03
von ts-soft

Code: Alles auswählen

If Defined()
ist ja ziemlich sinnlos und verbraucht evtl. noch 4 Bytes,
Defined ergibt doch nur im Zusammenhang mit CompilerIF einen Sinn.

Verfasst: 09.05.2007 15:05
von a14xerus
ts-soft hat geschrieben:

Code: Alles auswählen

If Defined()
ist ja ziemlich sinnlos und verbraucht evtl. noch 4 Bytes,
Defined ergibt doch nur im Zusammenhang mit CompilerIF einen Sinn.
Stimmt, bin ich noch gar nicht drauf gekommen, und ein Compilerif in einer Funktion, welches bezwecken soll, das etwas nur einmal gemacht wird ist schlichtweg unmöglich...
Somit ist allein das If defined() schon Schwachsinn, weil defined nur einmal vom Compiler durch eine konstante ersetzt wird, die procedure aber 2 mal aufgerufen wird /:->
Also alles einfach totaler Schwachsinn :wink:
Man definiert Strukturen einfach am Anfang des Codes und fertig <)

Verfasst: 09.05.2007 20:24
von Kai
a14xerus hat geschrieben:
ts-soft hat geschrieben:

Code: Alles auswählen

If Defined()
ist ja ziemlich sinnlos und verbraucht evtl. noch 4 Bytes,
Defined ergibt doch nur im Zusammenhang mit CompilerIF einen Sinn.
Stimmt, bin ich noch gar nicht drauf gekommen, und ein Compilerif in einer Funktion, welches bezwecken soll, das etwas nur einmal gemacht wird ist schlichtweg unmöglich...
Somit ist allein das If defined() schon Schwachsinn, weil defined nur einmal vom Compiler durch eine konstante ersetzt wird, die procedure aber 2 mal aufgerufen wird /:->
Also alles einfach totaler Schwachsinn :wink:
Man definiert Strukturen einfach am Anfang des Codes und fertig <)
Und ich bin so froh das ich diese Frage gestellt habe,
denn nun weiß auch ich das. :roll: