1999年度のプログラミングIIIの授業は終りました。 この授業のページは参照用の資料として保存しているものです。最新の情報・資料は江上の授業ページで。
[EGAMIX トップ] > [授業のページ] > [1999年度 プログラミングIII] > [授業ノート・資料]

[Back] [Index]
 
C言語の標準関数

 
ANSI規格
C言語は関数を用いてプログラムする言語
   ↓
  関数名・引数・戻り値などに自由度がある = プログラマで決めることができる
   ↓
  処理系(動作環境)により使い方が変わってくる可能性がある
   ↓
  同じプログラムが動作しなくなる可能性あり = 互換性・移植性が低い
 
[Q] 互換性・移植性とは?

 
そこで、ANSIにより関数の名前・機能・インターフェース(=使用方法)の統一が図られることになった
   ↓
  標準関数の誕生
  
処理の内容に応じて非常に多くの関数が準備され存在している

 
 
ヘッダファイル
C言語において関数を使用するためにはプロトタイプ宣言が必要である。特に引数や戻り値が整数(int)型以外の場合には必須
   ↓
  標準関数各々に対してプログラマが1つ1つプロトタイプ宣言をするのは非効率であるしミスを招きやすい
   ↓
  あらかじめ定義しておいて、必要に応じてプログラムに追加できれば便利
   ↓
  #include 文を用いてこの機能を実現
  
  
#include文によって取り込まれるヘッダファイルでは 
が行われる。
 
注意1)
ファイル操作のエラー処理時や文字列操作時に NULL, EOF を使用したが、これらの特殊文字は #include 文を用いてヘッダファイルの取り込みを行わないと正常に利用できない
  ↓
NULL や EOF は stdio.h というヘッダファイル内で定義されているため


注意2)

→ p.245
 
#include <stdio.h>
  ヘッダファイル stdio.h  の取り込み。ファイルはシステムが準備した場所

#include "my_file.h"
  my_file.h の読み込み。ファイルはカレント(ソースプログラムが存在する場所)
  拡張子は .h でなくてもよい
 
void kaigyou(void)
{
    printf("\n"); 
}
 

 

  #include <stdio.h>
#include "my_file.h"

main()
{
    printf("Hello.") ;
    kaigyou();
}

my_file.h my_file.c

 
 
関数の利用
テキストから2つほど取り上げる

toupper
  #include <ctype.h>
  ret = toupper(str);
[引数] int str ;                [戻り値] int ret ;  変換後の文字コードを返す
[機能] 英小文字を英大文字に変換する
 
この関数は・・・

であると理解する
 
 
#include <stdio.h>
#include <ctype.h>

main()
{
   char a = 'a' ;
   char A;

   A = toupper(a);    /* char <--> int の変換が行われる */

   printf("%c の大文字は %c です\n", a, A );
}


 
 
 
 

pow
  #include <math.h>
  ret = pow(x,y);
[引数] double  x,y ;                [戻り値] double ret ;
[機能] x の y 乗を求める
 
この関数は・・・

であると理解する
 
 
#include <stdio.h>
#include <math.h>

main()
{
   double motokin = 10000 ; 
   double ritu = 1.0025;
   double kikan = 10;
   double kekka;

   kekka = motokin * pow(ritu , kikan) ;

   printf("%lf 年間預けた結果は %lf 円です\n", kikan, kekka );
}

 
 
標準関数の使用方法(読み方)をマスターすればこれまで個別に学習しなかった関数であっても利用できるようになる(はず)
 

 
[Back] [Index]
egami@egamix.com