C言語の事前定義関数(ライブラリ関数)とは?特徴と使い方を実例付きで解説
C言語における関数は、大きく以下の2種類に分類されます。
- 事前定義関数(ライブラリ関数)
- ユーザー定義関数
事前定義関数(ライブラリ関数)とは
システムの標準ライブラリにあらかじめ定義されている関数です。
プログラマはライブラリ内の既存コードを再利用することで、エラーの少ない信頼性の高いコードを効率的に作成できます。
ただし、ライブラリ関数を使用するには、その関数の構文(引数や戻り値)および対応するヘッダファイルを理解しておく必要があります。
例:
sqrt() 関数は math.h ライブラリで提供されており、次のように使用します。
y = sqrt(x) ※ x は正の数である必要があります 例:y = sqrt(25) の場合、y = 5
その他にも、stdio.h には printf()、conio.h には clrscr() といった関数が用意されています。
サンプルプログラム1
以下は、事前定義関数 sqrt、printf、clrscr を使用したCプログラムの例です。
#include <stdio.h>
#include <conio.h>
#include <math.h>
main(){
int x, y;
clrscr();
printf("enter a positive number");
scanf("%d", &x);
y = sqrt(x);
printf("squareroot = %d", y);
getch();
}
実行結果
実行すると、次のような出力が得られます。
Enter a positive number 25 Squareroot = 5
その他の主な数学系ライブラリ関数
math.h には、sqrt 以外にも便利な数学関数が多数用意されています。代表的なものを紹介します。
- cbrt(x):x の立方根を求める
- log(x):x の自然対数(底 e)を求める
- ceil(x):x 以上で最小の整数に切り上げる
- pow(x, y):x の y 乗を求める
サンプルプログラム2
続いて、複数の事前定義関数を組み合わせたCプログラムの例を見てみましょう。
#include <stdio.h>
#include <math.h>
main(){
int x, y, z, k, p, q;
printf("enter x value:");
scanf("%d", &x);
y = cbrt(x);
z = exp(x);
k = log(x);
p = ceil(x);
q = pow(x, 2);
printf("cuberoot = %d\n", y);
printf("exponent value = %d\n", z);
printf("logarithmic value = %d\n", k);
printf("ceil value = %d\n", p);
printf("power = %d\n", q);
getch();
}
実行結果
x に 9 を入力した場合の出力は以下の通りです。
enter x value:9 cuberoot = 2 exponent value = 8103 logarithmic value = 2 ceil value = 9 power = 81
このように、C言語では math.h や stdio.h などの標準ライブラリに含まれる豊富な事前定義関数を活用することで、平方根や対数、べき乗といった複雑な計算処理も短いコードで簡単に実装できます。自前でロジックを書く手間が省け、バグも減らせるため、標準ライブラリ関数の使いこなしはC言語学習における重要なポイントです。
-
C言語のシフト演算とは?左シフト・右シフト・補数の基本をわかりやすく解説
問題 C言語を使用して、ある数値に対する左シフト・右シフト・補数(ビット反転)を求める簡単なプログラムを作成するには、どのようにすればよいのでしょうか。 解決方法 左シフト(<<) 変数の値を1ビットだけ左へシフトすると、その値は2倍になります。「a × 2」を計算したのと同じ結果です。 例:a = 10 の場合、a << 1 = 20 右シフト(>>) 変数の値を1ビットだけ右へシフトすると、その値は元の半分になります。「a ÷ 2」の整数除算と同じ結果です。 例:a = 10 の場合、a >> 1 = 5 サンプルプログラム 以下は、シ
-
C言語の探索アルゴリズム解説|線形探索と二分探索の違いと実装例
探索(サーチ)とは、複数の要素で構成されるリストの中から、目的の「キー」となる要素を見つけ出す処理のことです。 リストの中に指定した要素が存在すれば、その探索は「成功」とみなされます。 指定した要素がリストに存在しなければ、その探索は「失敗(不成功)」となります。 C言語で広く使われている代表的な探索手法は、主に次の2つです。 線形探索(Linear Search/リニアサーチ) 二分探索(Binary Search/バイナリサーチ) 線形探索(Linear Search)とは 線形探索は、リストの先頭から順に要素を1つずつ取り出し、キーと一致するかどうかを確認していく、最も基本的な探