C言語,#errorディレクティブでコンパイル時にエラーを出力

スポンサーリンク

鍛錬 916

C言語,#errorディレクティブでコンパイル時にエラーを出力

ディレクティブ「#error」を使用すると、コンパイルを停止してエラーメッセージを出力することができます。
 
使用方法は、以下に示す通りです。

#error 出力するエラーメッセージ
スポンサーリンク

プログラム

以下は、ディレクティブ「#error」の挙動を確認するプログラム、test_error.c です。

今回は、識別子「LLLLLL」が定義されていない場合にコンパイルを停止して、エラーメッセージ「[LLLLLL] is not defined.」を出力します。

// include
#include <stdio.h>

// main
int main(void)
{
	#ifdef LLLLLL
		printf("Hello, World.\n");
	#else
		#error [LLLLLL] is not defined.
	#endif
	
	return 0;
}
スポンサーリンク

実行結果

以下は、プログラム test_error.c を実行しています。

1回目のコンパイルでは「-D」オプションにより識別子「LLLLL」が定義されているため、コンパイルに成功しています。

2回目のコンパイルでは識別子「LLLLLL」を定義していないため、コンパイルが停止されエラーメッセージが出力されています。

関連記事:C言語,コメントの入れ子でコンパイルエラーになる場合の対応策

***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -DLLLLLL -Wall -Wextra test_error.c -o test_error
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ 
***@ubuntu:~/***/test/c$ gcc -Wall -Wextra test_error.c -o test_error
test_error.c: In function ‘main’:
test_error.c:10:4: error: #error [LLLLLL] is not defined.
   #error [LLLLLL] is not defined.
    ^~~~~
タイトルとURLをコピーしました