静的表明とは? わかりやすく解説

静的表明

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/05/21 09:00 UTC 版)

表明 (プログラミング)」の記事における「静的表明」の解説

コンパイル時にチェックされる表明は静的表明と呼ばれる。静的表明はコンパイル時のテンプレートメタプログラミングに特に有効だが、C言語でも表明違反となったときのみ不正なコードコンパイルエラーとなるコード)が導入されるようにして静的表明を実装可能である。例えば、C言語では次のように静的表明を実装できる。 #define COMPILE_TIME_ASSERT(pred) switch(0){case 0:case pred:;}COMPILE_TIME_ASSERT( BOOLEAN CONDITION ); (BOOLEAN CONDITION) が偽と評価されると、switch文2つ目のラベルの値はゼロとなるため、コンパイラ2つcaseラベルが同じ値だとしてエラー検出する。なお、指定する式はコンパイル時に値が定まるものでなければならない例えば (sizeof(int)==4) といった式である。また、関数定義内でないとswitch文出現しただけでコンパイルエラーになるので、関数内でしか使えない。 もう1つC言語でよく知られている静的表明の実装として、次の方式がある。 static char const static_assertion[ (BOOLEAN CONDITION) ? 1 : -1 ] = {'!'}; (BOOLEAN CONDITION) が偽と評価されると、配列長さが負になるため、このコードコンパイルされなくなる。たとえコンパイラが負のサイズ配列許したとしても、初期値('!' の部分)を設定しようとした時点問題気付くだろう。 これを何度も使用するには、配列名がそれぞれ別々でなければならない最近[いつ?]のコンパイラにはプリプロセッサに __COUNTER__ というマクロ定義があり、出現の度に増加する数を返すので、それを名前に含めればよい。 D言語は静的表明 static assertサポートしている。また、C++ではC++11において static_assert導入された。C言語でもC11規格_Static_assert導入された。

※この「静的表明」の解説は、「表明 (プログラミング)」の解説の一部です。
「静的表明」を含む「表明 (プログラミング)」の記事については、「表明 (プログラミング)」の概要を参照ください。

ウィキペディア小見出し辞書の「静的表明」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「静的表明」の関連用語

静的表明のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



静的表明のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、Wikipediaの表明 (プログラミング) (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS