#assert <述語> (<トークン列>)
<トークン列> は、表明の名前領域 (マクロ定義用の領域から分離されています) にある <述語> と関連付けられます。<述語> は識別子トークンでなければなりません。
#assert <述語>
これは <述語> が存在していることを表明しますが、それにトークン列を関連付けることはしません (-Xc モードを除く)。
コンパイラは、次のような事前定義された述語をデフォルトとして提供しています。
#assert system (unix) #assert machine (sparc) (SPARC) #assert machine (i386) (x86) #assert cpu (sparc) (SPARC) #assert cpu (i386) (x86)
lint は、次のような事前定義された述語をデフォルトとして提供しています (-Xc モードを除く)。
#assert lint (on)
表明は #unassert を使用して削除できます。この場合、#assert と同じ構文が使用されます。引数なしで #unassert を使用すると述語に対するすべての表明が削除され、表明を指定すればその表明だけが削除されます。
表明は、次の構文を持つ #if 文でテストすることができます。
#if #<述語>(<空でないトークン列>)
たとえば以下のように指定して、事前定義された述語 system をテストすることができます。
#if #system(unix)
これは真と評価されます。