多くのプロセッサでは、 @
と !
を使用してセルにアクセスする場合、
メモリー内でセルをアライメントする必要があります (プロセッサがアライメントを必要としない場合でも、
アライメントされたセルへのアクセスは高速です)。
Create
は here
(つまり、 次の割り当てが行われる場所、
そしてcreate
されたワードが指す場所)でアライメントします。 同様に、
allocate
によって生成されたメモリーはアライメントしたアドレスから始まります。 アライメントしたアドレスに cells
の数値 を足すと、 次のアライメントされたアドレスが生成されます。
ただし、 char+
および chars
を含むアドレス演算では、セルにアライメントしていないアドレスが作成される可能性があります。 Aligned ( addr -- a-addr
)
は、 その次のアライメントせされたアドレスを生成します:
v3 char+ aligned .s @ . v3 char+ .s @ .
同様に、 align
は here
を次のアライメントされたアドレスに進めます:
create v5 97 c, here . align here . 1000 ,
注意: プログラムを移植可能にしたい場合は、 プロセッサがそれらを必要としない場合でも、 アライメントれたアドレスを使用する必要があることに注意してください。
こちらも参照ください: Address arithmetic