simon schrieb:
> Ich frage mich immer wieder woher man diese infos bekommt, also von
> packed hab ich in keinem C Buch je was gelesen. selbst im C18 Manual von
> Microchip ist es nicht drinne.
Das hat auch erstmal nichts mit C zu tun, sondern mit der Plattform, auf
der Du arbeitest.
Es gibt viele CPU-Architekturen, bei denen es unter Strafe verboten ist,
mit 16/32/64-Bit-breiten Zugriffen auf ungerade Adressen zuzugreifen.
Z.B. der MSP430, der C167 und der PIC24.
Wenn man dies tut, gibt's einen Trap.
Aus diesem Grund ist es eine Hilfe des (plattform-abhängigen)
C-Compilers, die Adressen bzw. Offsets so zu legen, daß es
(normalerweise) nicht zu diesem Trap kommt. Wer weiß, was er tut, kann
dieses Hilfe abschalten, indem er "packed" verwendet.
Auf einem 8-Bitter braucht man dies i.a.R. nicht, da dieser eh auf alle
Adressen (gerade und ungerade) nur 8-Bit-breit zugreifen kann und daher
diese Einschränkung nicht hat.