このページを編集する際は、編集に関する方針に従ってください。
概要 †
- attalignの値が'i'の場合、cur_offset以上であるALIGNOF_INTの倍数のうち最小値を返す。
- attalignの値が'c'の場合、cur_offsetを(long型にキャストして)そのまま返す。
- attalignの値が'd'の場合、cur_offset以上であるALIGNOF_DOUBLEの倍数のうち最小値を返す。
- それ以外の場合、cur_offset以上であるALIGNOF_SHORTの倍数のうち、最小値を返す
。ただし、USE_ASSERT_CHECKING指定してコンパイルしたバイナリの場合、attalignが's'でなければエラーメッセージを出力して終了する。
引数 †
- cur_offset :
- attalign :
実装 †
#define att_align(cur_offset, attalign) \
( \
((attalign) == 'i') ? INTALIGN(cur_offset) : \
(((attalign) == 'c') ? ((long)(cur_offset)) : \
(((attalign) == 'd') ? DOUBLEALIGN(cur_offset) : \
( \
AssertMacro((attalign) == 's'), \
- 本マクロが有効の場合、引数conditionがFALSEならばエラーメッセージを出力して終了する。詳細はAssertMacro()/postgresql-8.1.4参照。
- USE_ASSERT_CHECKING指定せずにコンパイルしたバイナリの場合、常にtrueを返す。
- USE_ASSERT_CHECKING指定してコンパイルしたバイナリの場合、引数conditionがFALSEであればエラーメッセージを出力して終了する。
SHORTALIGN(cur_offset) \
))) \
)
呼出元 †
備考 †
* att_align aligns the given offset as needed for a datum of alignment
* requirement attalign. The cases are tested in what is hopefully something
* like their frequency of occurrence.
履歴 †
コメント †