next up previous contents
Next: 14.2 関数の宣言 Up: 14. 関数 III Previous: 14. 関数 III

14.1 関数の定義

再び、関数の定義の書式を書くと、

  [返り値の型] 関数名( 引数 [,引数...] ){
        実行文
        ...
  }

であるが、ここで、返り値の型を指定すると関数の返り値を整数以外にとる事が 出来る。

例 文字の整数値を与えると対応する文字を返す
    char itoc(int a){
        char c;
        c = a;
        return c;
    }

上の例では、関数の名前の前に char があるので、関数 itoc() は 文字型の関数になり、返り値は文字型でなければならない。

例 任意の整数値を -1.0 から 1.0 までの実数値に対応させる
    float rmap1(int num){
        if (num==0){
            return 0.0;
        }else if(num==1){
            return 1.0;
        }else if(num==-1){
            return -1.0;
        }else{
            return 1.0/num;
        }
    }

この例では、関数の名前の前に float があるので、関数 rmap1() は 実数型の関数になり、返り値は実数型でなければならない。

例 ポインタを返す
    char * string(){
          char *s="this is a test.";
          return s;
    }

上の例は、アドレスを返す関数の例である。ポインタの章で学んだように、 [型] * はポインタを意味する。従って、返り値はアドレスでなくては ならない。例では、"this is a test." という文字列のアドレスを返して いる。



Noriyo Kanayama