C言語編 リファレンス

標準ライブラリ 「N」

「N」で始まる標準ライブラリ関数及び、その他の定義です。

NDEBUG

概要 assertマクロの置換結果を制御する。
必要なヘッダファイル なし
形式 #define NDEBUG
置換結果 空定義。
詳細 このマクロを定義するのはプログラマの仕事であり、定義するかどうかは任意である。
VisualC++ のような開発環境においては、Debugビルドや Releaseビルドの区別があり、これらの設定によって自動的に、 定義が行われたり、無効化されたりすることがある。
注意
使用例
#define NDEBUG
#include <stdio.h>
#include <assert.h>

int main(void)
{
	assert( 0 );  /* 必ず停止する */
	puts( "NDEBUGテスト" );

	return 0;
}

実行結果:

NDEBUGテスト
関連
本編で解説している章 第28章

NULL

概要 何も指し示していない、空のポインタ定数。
必要なヘッダファイル stddef.h、stdio.h、stdlib.h、string.h などのうち、いずれか
形式 #define NULL 0
#define NULL (void*)0
置換結果 整数の 0 か、void*型にキャストされた 0
詳細 置換結果は整数や void*型の 0 だが、これはいかなる環境であっても、 アドレスが必要になる場面で現れる 0 は、ヌルポインタと判断されるためである。
注意 置換結果は整数や void*型の 0 だが、環境によっては、 メモリのアドレス0を指し示しているという訳ではないかも知れない。
使用例
#include <stdio.h>

int main(void)
{
	int num = 100;
	int* ptr = &num;

	printf( "%p\n", ptr );

	ptr = NULL;  /* もうどこも指し示していない */
	printf( "%p\n", ptr );  /* これが正しく動作する保証はない */

	return 0;
}

実行結果:

002EFEBC
00000000
関連
本編で解説している章 第31章

参考リンク

更新履歴

'2010/4/28 NDEBUG、NULL の説明を追加。

'2009/9/14 新規作成。



リファレンスのトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ