ひしだまの変更履歴

ひしだまHPの更新履歴。
主にTRPGリプレイの元ネタ集、プログラミング技術メモと自作ソフト、好きなゲームや音楽です。

#line・#error

2010-12-09 06:24:17 | PG(C言語)

C言語を使っていてプリプロセッサ命令の#defineを知らない人はいないだろうし、#if・#ifdef辺りも知られていると思う。
でも#lineとか#errorはあまり知られていない気がする。

#lineは、元となったソースのファイル名と行番号を示すもの。
(コンパイラーによっては、)コンパイルエラーになった時に、その元となったファイル名を表示してくれる(かもしれない)。
逆に言うと、本当にエラーが出た場所が分からなくなる可能性もあるけど^^;

#errorは、コンパイルエラーを発生させるもの。
ヘッダーファイルがちゃんと読み込まれているかどうか・あるいは記述されている定義が#if等によって無効になっていないかどうかを確認する為に、#errorを埋め込んで、そのエラーが出るかどうかで判定する…なんて使い方が出来るかも。

C言語で「(定義されているはずの)構造体が見つからなくてコンパイルエラーになる」というような場合、その定義近辺で何か間違っている可能性が高い。
定義がきちんと読み込まれているかどうかの確認に#errorが使えるんじゃないかなーと思う。



最新の画像もっと見る

コメントを投稿