|
クラスタ内に大きさの分かっている文字列があり、それをFig.1のように文字列に平坦化関数に入力しています。出力される文字列の長さを見てみると、配列または文字列サイズを先頭に追加?(T)がtrueやfalseでもいつも4バイトだけ大きくなっています。それはなぜなのでしょうか。
Figure 1: 文字列を含んだクラスタについてのブロックダイアグラム
クラスタ内の文字列は、平坦化されると文字列の長さの情報を常に含むようになります。その情報はU32整数として保存されます。したがって、平坦化された文字列の長さは入力文字列の長さ(nバイト)と文字列の長さの情報(4バイト)の合計になります。結果として長さはn+4バイトになります。
表示器を文字列に平坦化関数の出力に配線し、16進数の文字列に表示器を変更することで、この情報を確認することができます。文字列の長さの情報は、常に文字列の前に4バイト(0000 0020)あるのを確認できるかと思います。以下のFig2.をご参考にしてください。
Figure 2: Fig1.のフロントパネル
|