プログラミング初心者のための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をコピーしました