C言語編 リファレンス

標準ライブラリ 「L」

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

labs関数

概要 絶対値を返す。
必要なヘッダファイル stdlib.h
形式 long int labs(long int i);
引数 i 絶対値を求める対象の値。
戻り値 引数i の絶対値。
詳細
注意 結果が表現できない場合の動作は未定義。
使用例
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	printf( "%ld\n", labs(7L) );
	printf( "%ld\n", labs(-7L) );
	printf( "%ld\n", labs(0L) );

	return 0;
}

実行結果:

7
7
0
関連 引数と戻り値の型が異なるタイプが幾つか存在する。
abs関数は int型、llabs関数は long long int型を扱うが、後者は C99 から追加された。
また、double型を扱う fabs関数、float型を扱う fabsf関数、 long double型を扱う fabsl関数があるが、後ろの 2つは C99 から追加されたものである。 なお、これら浮動小数点数の型を扱うタイプは、stdlib.h ではなく、math.h に定義されている。
また、C99 で追加された intmax_t型の値に対して絶対値を求める imaxabs関数がある。
本編で解説している章

LC_CTYPE

LDBL_MAX

概要 long double型で表現可能な最大の数。
必要なヘッダファイル float.h
形式 #define LDBL_MAX 1.7976931348623158e+308
置換結果 long double型で表現可能な最大の数。
詳細
注意 long double型で表現できる一番小さい値は、-LDBL_MAX である。 LDBL_MIN は、一番小さい正数を表している。
使用例
#include <stdio.h>
#include <float.h>

int main(void)
{
	printf( "%e\n", LDBL_MAX );

	return 0;
}

実行結果:

1.797693e+308
関連 LDBL_MIN は、long double型で表現できる一番小さい正数を表す。
本編で解説している章 第20章

LDBL_MIN

概要 long double型で表現可能な最小な正数。
必要なヘッダファイル float.h
形式 #define LDBL_MIN 2.2250738585072014e-308
置換結果 long double型で表現可能な最小な正数。
詳細 long double型で表現することができる最も小さい正の数を表している。 言い換えると、最も 0 に近い正数である。
注意 この記号定数は、負数にはならないので、long double型の最小値を表してはいない。 最小値が必要ならば、-LDBL_MAX を使う。
使用例
#include <stdio.h>
#include <float.h>

int main(void)
{
	printf( "%e\n", LDBL_MIN );

	return 0;
}

実行結果:

2.225074e-308
関連 long double型の最大値は LDBL_MAX を調べる。
本編で解説している章

llabs関数

概要 絶対値を返す。
必要なヘッダファイル stdlib.h
形式 long long int llabs(long long int i);
引数 i 絶対値を求める対象の値。
戻り値 引数i の絶対値。
詳細
注意 結果が表現できない場合の動作は未定義。
使用例
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	printf( "%lld\n", llabs(7LL) );
	printf( "%lld\n", llabs(-7LL) );
	printf( "%lld\n", llabs(0LL) );

	return 0;
}

実行結果:

7
7
0
関連 引数と戻り値の型が異なるタイプが幾つか存在する。
abs関数は int型、labs関数は long int型を扱う。
また、double型を扱う fabs関数、float型を扱う fabsf関数、 long double型を扱う fabsl関数があるが、後ろの 2つは C99 から追加されたものである。 なお、これら浮動小数点数の型を扱うタイプは、stdlib.h ではなく、math.h に定義されている。
また、C99 で追加された intmax_t型の値に対して絶対値を求める imaxabs関数がある。
本編で解説している章

LLONG_MAX

概要 long long型で表現可能な最大の数。
必要なヘッダファイル limits.h
形式 #define LLONG_MAX 9223372036854775807LL
置換結果 long long型で表現可能な最大の数。
詳細
注意 long long型の大きさはコンパイラ依存であるが、最低でも 64bit である。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%lld\n", LLONG_MAX );

	return 0;
}

実行結果:

9223372036854775807
関連 long long型の最小値は LLONG_MIN で表される。
unsigned long long型の最小値は 0、最大値は ULLONG_MAX で表される。
本編で解説している章

LLONG_MIN

概要 long long型で表現可能な最小の数。
必要なヘッダファイル limits.h
形式 #define LLONG_MIN -9223372036854775807LL
置換結果 long long型で表現可能な最小の数。
詳細
注意 long long型の大きさはコンパイラ依存であるが、最低でも 64bit である。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%lld\n", LLONG_MIN );

	return 0;
}

実行結果:

-9223372036854775808
関連 long long型の最大値は LLONG_MAX で表される。
unsigned long long型の最小値は 0、最大値は ULLONG_MAX で表される。
本編で解説している章

localtime関数

概要 カレンダー時間から、ローカル時間を得る。
必要なヘッダファイル time.h
形式 struct tm* localtime(const time_t* t);
引数 t カレンダー時間が格納されているアドレス。
戻り値 ローカル時間が格納された位置を指すポインタが返される。 失敗した場合は NULL が返される。
詳細
注意 返されるポインタが指す先は、次回の localtime関数の呼び出し時に再利用され、上書きされる可能性がある。 この関数だけでなく、ctime関数gmtime関数でも、同じ場所を上書きしている可能性がある。
使用例
#include <stdio.h>
#include <time.h>

int main(void)
{
	struct tm* lt;
	time_t t;
	
	t = time( NULL );
	lt = localtime( &t );

	puts( asctime( lt ) );

	return 0;
}

実行結果

Sun Apr 03 13:07:27 2011
関連 カレンダー時間から、協定世界時(UTC) を得るには gmtime関数を使う。
本編で解説している章 第51章

log関数

概要 自然対数を求める
必要なヘッダファイル math.h
形式 double log(double x);
引数 x 対象の値。
戻り値 引数x の自然対数。
詳細 e (ネイピア数)を底とする対数(自然対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	double x = 1.0 / 16.0;
	int i;

	for( i = 0; i < 8; ++i ){
		printf( "log(%.4f) = %f\n", x, log(x) );
		x *= 2.0;
	}

	return 0;
}

実行結果

log(0.0625) = -2.772589
log(0.1250) = -2.079442
log(0.2500) = -1.386294
log(0.5000) = -0.693147
log(1.0000) = 0.000000
log(2.0000) = 0.693147
log(4.0000) = 1.386294
log(8.0000) = 2.079442
関連 常用対数を求める log10関数がある。 また、自然対数の底e の x乗を計算するには exp関数を使う。
C99 では、float型版の logf関数、long double型版の logl関数が追加されている。
本編で解説している章

log10関数

概要 常用対数を求める
必要なヘッダファイル math.h
形式 double log10(double x);
引数 x 対象の値。
戻り値 引数x の常用対数。
詳細 10 を底とする対数(常用対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	double x = 1.0 / 100.0;
	int i;

	for( i = 0; i < 8; ++i ){
		printf( "log10(%6.7g) = %f\n", x, log10(x) );
		x *= 10.0;
	}

	return 0;
}

実行結果

log10(  0.01) = -2.000000
log10(   0.1) = -1.000000
log10(     1) = 0.000000
log10(    10) = 1.000000
log10(   100) = 2.000000
log10(  1000) = 3.000000
log10( 10000) = 4.000000
log10(100000) = 5.000000
関連 自然対数を求める log関数がある。
C99 では、float型版の log10f関数、long double型版の log10l関数が追加されている。
本編で解説している章

log10f関数

概要 常用対数を求める
必要なヘッダファイル math.h
形式 float log10(float x);
引数 x 対象の値。
戻り値 引数x の常用対数。
詳細 10 を底とする対数(常用対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	int x, i;
	float xf;

	for( i = 0; i < 8; ++i ){
		x = (int)pow(10, i);
		xf = x / 100.0f;
		printf( "log10(%6.7g) = %f\n", xf, log10f(xf) );
	}

	return 0;
}

実行結果

log10(  0.01) = -2.000000
log10(   0.1) = -1.000000
log10(     1) = 0.000000
log10(    10) = 1.000000
log10(   100) = 2.000000
log10(  1000) = 3.000000
log10( 10000) = 4.000000
log10(100000) = 5.000000
関連 自然対数を求める logf関数がある。
double型版は log10関数、long double型版は log10l関数である。
本編で解説している章

log10l関数

概要 常用対数を求める
必要なヘッダファイル math.h
形式 long double log10l(long double x);
引数 x 対象の値。
戻り値 引数x の常用対数。
詳細 10 を底とする対数(常用対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	long double x = 1.0L / 100.0L;
	int i;

	for( i = 0; i < 8; ++i ){
		printf( "log10(%6.7Lg) = %Lf\n", x, log10l(x) );
		x *= 10.0L;
	}

	return 0;
}

実行結果

log10(  0.01) = -2.000000
log10(   0.1) = -1.000000
log10(     1) = 0.000000
log10(    10) = 1.000000
log10(   100) = 2.000000
log10(  1000) = 3.000000
log10( 10000) = 4.000000
log10(100000) = 5.000000
関連 自然対数を求める logl関数がある。
float型版は log10f関数、double型版は log10関数である。
本編で解説している章

logf関数

概要 自然対数を求める
必要なヘッダファイル math.h
形式 float logf(float x);
引数 x 対象の値。
戻り値 引数x の自然対数。
詳細 e (ネイピア数)を底とする対数(自然対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	float x = 1.0f / 16.0f;
	int i;

	for( i = 0; i < 8; ++i ){
		printf( "log(%.4f) = %f\n", x, logf(x) );
		x *= 2.0f;
	}

	return 0;
}

実行結果

log(0.0625) = -2.772589
log(0.1250) = -2.079442
log(0.2500) = -1.386294
log(0.5000) = -0.693147
log(1.0000) = 0.000000
log(2.0000) = 0.693147
log(4.0000) = 1.386294
log(8.0000) = 2.079442
関連 常用対数を求める log10f関数がある。 また、自然対数の底e の x乗を計算するには expf関数を使う。
double型版は log関数、long double型版は logl関数である。
本編で解説している章

logl関数

概要 自然対数を求める
必要なヘッダファイル math.h
形式 long double logl(long double x);
引数 x 対象の値。
戻り値 引数x の自然対数。
詳細 e (ネイピア数)を底とする対数(自然対数)を求める。
注意 引数x が負数の場合は定義域エラーになり、errnoEDOM がセットされる。 この場合の戻り値は、環境依存となる。
引数x が 0 の場合は範囲エラーになり、戻り値は 0 になる。 この場合に、errnoERANGE がセットされるかどうかは環境依存である。
使用例
#include <stdio.h>
#include <math.h>

int main(void)
{
	long double x = 1.0L / 16.0L;
	int i;

	for( i = 0; i < 8; ++i ){
		printf( "log(%.4Lf) = %Lf\n", x, logl(x) );
		x *= 2.0L;
	}

	return 0;
}

実行結果

log(0.0625) = -2.772589
log(0.1250) = -2.079442
log(0.2500) = -1.386294
log(0.5000) = -0.693147
log(1.0000) = 0.000000
log(2.0000) = 0.693147
log(4.0000) = 1.386294
log(8.0000) = 2.079442
関連 常用対数を求める log10l関数がある。 また、自然対数の底e の x乗を計算するには expl関数を使う。
float型版は logf関数、double型版は log関数である。
本編で解説している章

LONG_MAX

概要 long型で表現可能な最大の数。
必要なヘッダファイル limits.h
形式 #define LONG_MAX 2147483647L
置換結果 long型で表現可能な最大の数。
詳細
注意 long型の大きさはコンパイラ依存であるが、最低でも 32bit である。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%ld\n", LONG_MAX );

	return 0;
}

実行結果:

2147483647
関連 long型の最小値は LONG_MIN で表される。
unsigned long型の最小値は 0、最大値は ULONG_MAX で表される。
本編で解説している章 第20章

LONG_MIN

概要 long型で表現可能な最小の数。
必要なヘッダファイル limits.h
形式 #define LONG_MIN -2147483648L
置換結果 long型で表現可能な最小の数。
詳細
注意 long型の大きさはコンパイラ依存であるが、最低でも 32bit である。
使用例
#include <stdio.h>
#include <limits.h>

int main(void)
{
	printf( "%ld\n", LONG_MIN );

	return 0;
}

実行結果:

-2147483648
関連 long型の最大値は LONG_MAX で表される。
unsigned long型の最小値は 0、最大値は ULONG_MAX で表される。
本編で解説している章 第20章

L_tmpnam

概要 tmpnam関数が生成するファイル名を保持するために必要な配列の大きさを表す。
必要なヘッダファイル stdio.h
形式 #define L_tmpnam 13
置換結果 tmpnam関数が生成するファイル名を保持するために必要な配列の大きさ。
詳細 他の多くのオブジェクト形式マクロと異なり、名前に小文字が含まれるが、マクロである。
注意
使用例
#include <stdio.h>
#include <stdlib.h>

int main(void)
{
	char fname[L_tmpnam];
	
	if( tmpnam( fname ) == NULL ){
		fputs( "ファイル名の生成に失敗。", stderr );
		exit( EXIT_FAILURE );
	}

	puts( fname );

	return 0;
}

実行結果:

\s9g.
関連
本編で解説している章

参考リンク

更新履歴

'2017/4/12 logf関数、logl関数、log10f関数、log10l関数の説明を追加。

'2017/3/16 LLONG_MAXマクロ、LLONG_MINマクロの説明を追加。

'2017/3/4 llabs関数の説明を追加。labs関数の説明を修正。

'2011/6/4 log関数、log10関数の説明を追加。

'2011/5/5 localtime関数の説明を追加。

'2010/5/15 L_tmpnam の説明を追加。

'2009/12/17 LONG_MAX、LONG_MIN の説明を追加。

'2009/11/28 LDBL_MAX、LDBL_MIN の説明を追加。

'2009/9/19 labs関数の説明を追加。

'2009/6/24 新規作成。



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

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

Programming Place Plus のトップページへ