ONC+ 開発ガイド

カウント付きバイト文字列

説明

標準規約では、n バイトの ASCII 文字列 (バイト番号は 0n-1) を次のように定義します。バイト数が符号なし整数 n に符号化されたものに、n バイトの文字列が続きます。文字列のバイト b は必ずバイト b+1 の直前に位置し、文字列のバイト 0 は文字列の長さの次に位置しています。n バイトのデータの後には、0 〜 3 個の余分なゼロバイト r が付加されて、全体のバイト数が 4 の倍数になるように調整されます。

宣言

カウント付きバイト文字列は次のように宣言します。

string object<m>; 

または

string object<>;  

定数 m は、文字列に含まれるバイト数の上限を示します。2 番目の宣言のように、m を指定しないと、最大バイト数は (2**32) - 1 となります。定数 m は、通常プロトコル仕様で決められています。たとえば、ファイル伝送プロトコルでファイル名を最大 255 バイトとするには、次のように宣言します。

string filename<255>;

符号化

文字列

Graphic

指定した最大バイト数以上の長さを符号化するとエラーになります。