プログラミング初心者のためのC言語 関数編!

プログラム言語

C言語は、関数の集合で構成されています。
メインルーチンも1つの関数です。

それぞれの関数にロジックを記入し、組み合わせることで目的のプログラムができあがります。

関数には、「printf」「putchar」「getc」のようにC言語に標準で組み込まれている標準ライブラリ関数とプログラマーが自由に宣言して作成するユーザー関数があります。

この関数たちが、C言語の特徴でもあります。
これから、C言語の関数の使い方や宣言方法などを解説します。

メインルーチンも1つの関数!

C言語のメインルーチンはmain(void)から始まります。
通称、main関数と呼ばれるものです。

大かっこと呼ばれる記号(”{“と”}”)の間に宣言文やロジックを記述します。
()内の「void」は、戻り値が無い場合の記述です。
この「void」は、記述しなくても大丈夫です。

C言語のプログラムには、必ずmainという関数名をもった関数がなければなりません。
またそのmain関数は、以下の3つの条件を満たしていなければなりません。

1. 必ず戻り値がint型である。
2.引数(パラメータ)は無いか、2つ指定しているかのいずれかでなければならない。
3. プログラムの構造はmai関数を最初に呼び出す構造になっている。

C言語のプログラム構造を示します。
main(void)
{
関数1();
・・・;
   ・・・;
}
関数1()
{
 関数2();
・・・;
・・・;
}
関数2()
{
・・・;
}

このようにC言語とは、main関数からはじまり、いくつかの関数が組み合わさって構成されます。
関数は、C言語をマスターするための重要なキーワードといえます。

標準ライブラリ関数とは何!

標準ライブラリ関数とは最初からC言語に用意されている関数を言います。
標準関数は以下のように分類されます。

①入出力関数・・・データなどの入出力に使用されます。
②文字列操作関数・・・文字列の編集に使用されます。
③データ変換関数・・・文字タイプを整数値に変換するなど、データの変換に使用します。
④メモリ関数・・・メモリを確保するときなどのメモリ操作に使用します。
⑤数学関数・・・数値の計算で使用します。
⑥割り込み関数・・・処理を中断するなどの割り込み処理に使用します。
⑦その他関数

関数の使い方などは、処理系によって相違がある場合があります。
実際使用の際は、各処理系のマニュアルを参照しましょう。

さまざまな場面で使い分けます。
使い慣れることも大切なので、実際のプログラミングでは、できるだけ標準関数の使用を意識をしておきましょう。

標準ライブラリ関数の種類

標準ライブラリ関数は、ヘッダファイルというものを使って組み込みます。

ヘッダファイルとは、関数などの宣言のみを記したファイル。
プログラムのソースコードなどに取り込んで一体化することで、宣言された関数などを呼び出して利用できるようにするものです。

ヘッダファイルは#include命令によって、プログラムに読み込まれます。
ヘッダファイルの種類を以下に記述します。

標準ライブラリ関数一覧

 ヘッダー名   用途   
asser.h診断機能
complex.h複素数計算
ctype.h文字操作
error.hエラー
fenv..h浮動小数点環境
float.h浮動小数点の特性
inttypes.h整数型の書式変換
iso646.h代替つづり
limits.h整数型の大きさ
locale.h文字圏固有操作
math.h数字
setjmp.h非局所分岐
signal.hシグナル操作
stdarg.h可変戸数の実引数
stdbool.h論理型および論理値
stddef.h共通の定義
stdint.h整数型
stdio.h入出力
stdlib.h一般ユーティリティ
string.h文字列操作
tgmath.h型総称数学関数
time.h日付および時間
wachar.h多バイト文字および文字拡張ユーティリティ
wctype.h多バイト文字変換

この中で特によく使われる<stdio.h>には、printf関数やscanf関数などがあります。
使いながら覚えるしかありません。

標準関数の使用方法

まず、標準関数を使用するには、関数を定義しているヘッダーファイルを#include文でプログラムの先頭で宣言します。

#include <stdio.h>

こちらは、ヘッダーファイル「stdio.h」というものを、これから作成するプログラムにインクルードする(取り込む)という意味です。

以下は、「stdio.h」の使用例です。
キーボードから入力した1文字を標準出力するプログラムです。

1文字入力のプログラム
入力した文字を出力

ユーザー関数とは何!

標準関数に対して、プログラマーが制作する関数をユーザー関数と呼びます。

プログラム内に定義するのは、そのプログラムで必要な機能です。
プログラミングをするプログラマーによって、それぞれ違いがあります。

サブルーチンとよく似ていますが、サブルーチンと違うところは引数があるというところです。

ユーザー関数は自由に定義できる!

標準関数は、関数に対する使い方が定められていますが、ユーザー関数は関数名も使い方も自由です。

必ずしも関数名に合わせて、関数内の処理を定義しなければならないことはありません。
最小値を求める関数名をmax(int x, int y)としても、処理的には何も問題はありません。

しかし、一般的には関数名は関数内の処理内容が分かる関数名にした方が、プログラムを解析するときに、混乱しないでしょう。

ユーザー関数の使用方法

まず、関数の宣言をします。
関数の宣言には、関数名、戻り値のデータ型、引数のデータ型と個数を記述します。

この宣言のことを「関数のプロトタイプ宣言」といいます。

【プロトタイプ宣言の例】
int max(int, int);
int max(int x, int y);
int main(void); ※引数がない場合、voidと書きます

次に、関数を定義します。
関数の関数定義と呼びます。

【関数定義の例】
int max(int x, int y) ・・・・ 戻り値のデータ型と関数名を記述
{
if (x > y)
{
return x;
}
else
{
return y;
}
}

【プログラムでの使用例】

xとyとzの最大値を戻り値とするプログラムです。
実行結果です。

C言語 関数編のまとめ!

C言語の関数には、メイン関数、標準ライブラリ関数、ユーザー関数がありました。
メイン関数では、プログラムの主となる部分がメイン関数で記述されていることが、C言語の最低条件となります。

メイン関数から、その他の関数等を使用して、様々なロジックが組まれます。
小さな部品を作り、リンクして1つのプログラムにするようなこともあります。

作り方は、初級プログラマーから上級プログラマーになるにつれて、複雑な構造になるでしょう。
まだまだ奥の深いプログラムでもあります!

ただC言語は、関数の集まりだということが理解できるようになれば、あとはスムーズにC言語の習得ができるのではないでしょうか!

コメント

タイトルとURLをコピーしました