x、y、z は式です。x および y は記憶領域を指定するアドレスで、z はバイト数です。x および y には、OFFSET 型および POINTER 型が必要です。z は、FIXED BINARY(31,0) に変換されます。
dcl Result fixed bin; dcl 1 Str1, 2 B fixed bin(31), 2 C pointer, 2 * union, 3 D char(4), 3 E fixed bin(31), 3 *, 4 * char(3), 4 F fixed bin(8) unsigned, 2 * char(0); dcl 1 Template nonasgn static, 2 * fixed bin(31) init(16), /* ’’X */ 2 * pointer init(null()), 2 * char(4) init(’’), 2 * char(0); call plimove(addr(Str1), addr(Template), stg(Str1)); Result = compare(addr(Str1), addr(Template), stg(Str1)); /* 0 */ D = ’DSA ’; Result = compare(addr(Str1), addr(Template), stg(Str1)); /* 1 */ B = 15; /* ’00000F00’X */ D = ’DSA ’; Result = compare(addr(Str1), addr(Template), stg(Str1)); /* -1 */
説明
COMPARE 組み込み関数は、2 つのバッファーを比較して、FIXED BINARY(31,0) の値を返します。アドレス x とアドレス y のバイト数が同じである場合、戻り値は 0 になります。x のバイト数 (z) が y より小さい場合は戻り値が負になり、x のバイト数が y より大きい場合は戻り値が正になります。