関数は、C言語プログラムの部品となるものである。
プログラムは、あらかじめ用意されている関数(=ライブラリ関数)を組み合わせて作ることになる。
関数定義の書式
戻り値の型 関数名 (引数型) {
処理
}
main 関数も、関数の一つである。
main 関数はプログラム全体の開始点、終了点となる特殊な関数と考えてよい。
main 関数への入力はコマンドラインから受け取る。main 関数が返した値はOSが受け取る。
int main (void) {
printf("Hello");
return 0;
}
用語:
void = 引数、戻り値を設定しない
課題1:hellofunction1.c
#include <stdio.h>
/* 2数の平均を求める関数を定義している */
double average (double x, double y) {
double z;
z = (x+y)/2;
return z;
}
int main (void) {
double a = 5.0, b = 7.5, c;
c = average(a,b); // 上で独自に定義した average() 関数を呼び出している
printf("%lf",c);
}
hellofunction1.c にて、average関数よりも先に main関数を定義したい場合には、関数のプロトタイプ宣言が必要になる。
hellofunction1.c (プロトタイプ宣言を利用)
#include <stdio.h>
double average (double x, double y);
int main (void) {
double a = 5.0, b = 7.5, c;
c = average(a,b); // 下で独自に定義した average() 関数を呼び出している
printf("平均 %lf",c);
}
/* 2数の平均を求める関数を定義している */
double average (double x, double y) {
double z;
z = (x+y)/2;
return z;
}
確認項目
定義した関数の名前は?
定義した関数の引数の数とタイプは?
定義した関数の返り値のタイプは?
定義した関数の処理は?
課題2:hellofunction2.c
#include <stdio.h>
/* 消費税込み価格を求める関数 */
int getTaxedPrice (int price) {
double d;
d = price * 1.05;
return (int) d;
}
int main (void) {
int price1 = 125;
int price2;
price2 = getTaxedPrice(price1);
printf("税抜き価格%d円\n",price1);
printf("税込み価格%d円\n",price2);
}
hellofunction1.c hellofunction2.c を作成し、メールで添付ファイルとして提出する。
提出先: K05025@center.shonan-it.ac.jp
締め切り:次回授業の前日
■aa.c (応用例)
#include <stdio.h>
void aa(char s[]){
printf("------------------\n");
printf(" ∧ ∧\n");
printf("/(´Д`)ノ<%s\n",s);
printf(" ̄ ̄ ̄ ̄|\n");
printf("------------------\n");
}
int main(void){
aa("hello");
aa("nandayo");
}
■実行結果
C:\myc>aa.exe
------------------
∧ ∧
/(´Д`)ノ<hello
 ̄ ̄ ̄ ̄|
------------------
------------------
∧ ∧
/(´Д`)ノ<nandayo
 ̄ ̄ ̄ ̄|
------------------
C言語の関数の引数として配列の渡し方には注意が必要