C言語は、関数の集合で構成されています。
メインルーチンも1つの関数です。
それぞれの関数にロジックを記入し、組み合わせることで目的のプログラムができあがります。
関数には、「printf」「putchar」「getc」のようにC言語に標準で組み込まれている標準ライブラリ関数とプログラマーが自由に宣言して作成するユーザー関数があります。
この関数たちが、C言語の特徴でもあります。
これから、C言語の関数の使い方や宣言方法などを解説します。
メインルーチンも1つの関数!
![](https://agoodday.group/wp-content/uploads/2022/05/562732_m-1-1024x768.jpg)
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言語をマスターするための重要なキーワードといえます。
標準ライブラリ関数とは何!
![](https://agoodday.group/wp-content/uploads/2022/05/プログラム学習_m-1024x683.jpg)
標準ライブラリ関数とは最初から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文字を標準出力するプログラムです。
![](https://agoodday.group/wp-content/uploads/2022/06/image.png)
![](https://agoodday.group/wp-content/uploads/2022/06/image-1.png)
ユーザー関数とは何!
![](https://agoodday.group/wp-content/uploads/2022/06/1436077_m-1024x683.jpg)
標準関数に対して、プログラマーが制作する関数をユーザー関数と呼びます。
プログラム内に定義するのは、そのプログラムで必要な機能です。
プログラミングをするプログラマーによって、それぞれ違いがあります。
サブルーチンとよく似ていますが、サブルーチンと違うところは引数があるというところです。
ユーザー関数は自由に定義できる!
標準関数は、関数に対する使い方が定められていますが、ユーザー関数は関数名も使い方も自由です。
必ずしも関数名に合わせて、関数内の処理を定義しなければならないことはありません。
最小値を求める関数名を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;
}
}
【プログラムでの使用例】
![](https://agoodday.group/wp-content/uploads/2022/06/最大値を求めるプログラム.jpg)
![](https://agoodday.group/wp-content/uploads/2022/06/最大値を求める_実行結果.jpg)
C言語 関数編のまとめ!
![](https://agoodday.group/wp-content/uploads/2022/06/714049.jpg)
C言語の関数には、メイン関数、標準ライブラリ関数、ユーザー関数がありました。
メイン関数では、プログラムの主となる部分がメイン関数で記述されていることが、C言語の最低条件となります。
メイン関数から、その他の関数等を使用して、様々なロジックが組まれます。
小さな部品を作り、リンクして1つのプログラムにするようなこともあります。
作り方は、初級プログラマーから上級プログラマーになるにつれて、複雑な構造になるでしょう。
まだまだ奥の深いプログラムでもあります!
ただC言語は、関数の集まりだということが理解できるようになれば、あとはスムーズにC言語の習得ができるのではないでしょうか!
コメント