MARINECAT サポート掲示板
[記事リスト] [新着記事] [ワード検索] [過去ログ] [管理用]

タイトル assert(BLKSIZE-224-MDCTDELAY % 8 == 0)が失敗する
投稿日: 2002/03/13(Wed) 22:39
投稿者

> petit310のget_audio.cの111行目のASSERTが失敗するんですけど
> どうしてですか。

すいません,私のミスです.括弧が抜けてました.
間違:assert(BLKSIZE-224-MDCTDELAY % 8 == 0);
正解:assert((BLKSIZE-224-MDCTDELAY) % 8 == 0);

> #マクロだけだから、Assert(0==0)が失敗するということだよね
> #そもそもどうしてこういうアサートがあるのでしょうか

アセンブラコードではいろんな仮定を利用して最適化しています.例えば,特定
の定数が特定の範囲にしかならないことなど.
この場合,
(BLKSIZE-224-MDCTDELAY) % 8 == 0
が成り立つことをアセンブラコードの最適化に使っているので,他の部分の都合
で上記条件を満たさなくなった場合にアセンブラコードの変更が必要になります.
それをチェックするために assert を入れています.

といっても,今回のように assert の条件を間違っていたら無意味なんですけど
ね.お恥ずかしい.


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)
代理サーバー経由のアクセスか、アクセス制限されたホストからのアクセスを検出しました。投稿できません