【C言語】第5章第7回:ユーザー定義関数の設計と実装
ユーザー定義関数は、特定のタスクを実行するコードを再利用可能にするための便利な方法です。この章では、設計のコツや実装方法を解説します。
1. ユーザー定義関数とは?
ユーザー定義関数は、開発者が独自に設計し、特定のタスクを実行するために作成する関数です。
- 目的:コードの再利用性を高める。
- メリット:プログラムの構造を簡潔にし、読みやすくする。
1.1 ユーザー定義関数の構造
ユーザー定義関数は以下の構造を持ちます:
return_type function_name(parameter_list) {
// 関数の処理内容
return value; // 必要に応じて値を返す
}
- return_type: 関数が返す値の型。
- function_name: 関数の名前。
- parameter_list: 関数に渡す引数のリスト。
2. 基本的なユーザー定義関数の実装
2.1 2つの数の平均を計算する関数
例:引数を渡して平均を計算
#include <stdio.h>
// 平均を計算する関数
float calculateAverage(float a, float b) {
return (a + b) / 2.0;
}
int main() {
float num1 = 10.5, num2 = 20.3;
printf("Average: %.2f\n", calculateAverage(num1, num2));
return 0;
}
解説:
float calculateAverage(float a, float b)
: 引数a
とb
を受け取り、その平均を返します。- 戻り値の型は
float
で指定されており、小数点以下を含む結果を返します。
3. 応用的なユーザー定義関数の設計
3.1 配列の合計を計算する関数
例:配列とそのサイズを引数として受け取る
#include <stdio.h>
// 配列の合計を計算する関数
int calculateSum(int arr[], int size) {
int sum = 0;
for (int i = 0; i < size; i++) {
sum += arr[i];
}
return sum;
}
int main() {
int numbers[] = {1, 2, 3, 4, 5};
int size = sizeof(numbers) / sizeof(numbers[0]);
printf("Sum of array: %d\n", calculateSum(numbers, size));
return 0;
}
解説:
int calculateSum(int arr[], int size)
: 配列とそのサイズを引数として受け取ります。for
ループで各要素を合計します。
4. ユーザー定義関数を使用する際のポイント!
- 名前の付け方:関数の役割が明確にわかる名前を付ける。
- 引数リスト:必要な情報だけを渡すように設計する。
- 戻り値:関数の結果が明確になるように適切な型を指定する。
5. 練習問題
以下の課題に挑戦して、ユーザー定義関数の設計と実装を練習しましょう。
- 整数を引数として受け取り、それが偶数か奇数かを判定する関数を作成してください。
- 2つの整数を引数として受け取り、その最大公約数を返す関数を作成してください。
- 文字列を引数として受け取り、その長さを返す関数を作成してください。
6. 練習問題の解答と解説
問1の解答
#include <stdio.h>
// 偶数か奇数を判定する関数
void checkEvenOdd(int num) {
if (num % 2 == 0) {
printf("%d is even.\n", num);
} else {
printf("%d is odd.\n", num);
}
}
int main() {
int number;
printf("Enter a number: ");
scanf("%d", &number);
checkEvenOdd(number);
return 0;
}
解説:checkEvenOdd
関数は、渡された整数を2で割った余りを判定し、偶数または奇数を出力します。
7. まとめ
ユーザー定義関数を正しく設計することで、コードの再利用性と可読性を向上させることができます。次回は、関数をモジュール化する方法について学びます。