Sun Studio 12: C ユーザーズガイド

2.7 表明 (assertion)

次の書式で指定します。


#assert <述語> (<トークン列>)

<トークン列> は、表明の名前空間 (マクロ定義用の空間から分離されている) にある <述語> と関連付けられます。<述語> は識別子トークンでなければいけません。


#assert <述語> 

これは <述語> が存在していることを表明しますが、それにトークン列を関連付けることはしません。

コンパイラは、次のような事前定義された述語をデフォルトとして提供しています (-Xc モードを除く)。


#assert system (unix)
#assert machine (sparc)
#assert machine (i386)(x86)
#assert cpu (sparc)
#assert cpu (i386)(x86)

lint は、次のような事前定義された述語をデフォルトとして提供しています (-Xc モードを除く)。


#assert lint (on)

表明は #unassert を使用して削除できます。この場合、assert と同じ構文が使用されます。引数なしで #unassert を使用すると述語に対するすべての表明が削除され、表明を指定すればその表明だけが削除されます。

表明は、次の構文を持つ #if 文でテストすることができます。


#if #<述語> (空でない<トークン列>)

たとえば次のように指定して、事前定義された述語 system をテストすることがで きます。


#if #system(unix)

これは真と評価されます。