Rolf B: Muss man, oder muss man nicht ? Notice: Undefined variable:

Beitrag lesen

Hallo Martin,

Ich gehe eigentlich davon aus, dass eine benannte Konstante überhaupt nirgends abgelegt wird, sondern vom Compiler überall dort in den Code eingesetzt wird, wo sie auftaucht.

Das hängt von Programmiersprache, Compiler und Konstante ab.

Eine 32-bit Integer-Konstante 0xdeadbeef lässt sich im x86- und x64-Assembler effizient in den Objectcode einbauen. Bei 6502-Assembler dagegen könnte schon ein LDX mit der Adresse der 32-bit Integerkonstante und ein CALL auf die add32-Subroutine besser sein.

Eine double-Konstante 1004.2 könnte aber auch auf einem 64-bit Prozessor effizienter im .data Bereich liegen.

Eine String-Konstante "To boldly go where no man has gone before" dagegen wird immer im .data Bereich liegen und der Compiler setzt nur eine Referenz darauf ein.

Rolf

--
sumpsi - posui - obstruxi