C言語

C言語


データ

読み しーげんご
属性 万能
種類 プログラミング言語
能力 アセンブラ言語とコンパイラ言語を足して2で割ったような能力

説明

高級アセンブラの異名を持つ言語。
大昔にBという言語が実在して、その流れをくむ言語なのでCと名付けられた。
他にもD、E、Fなどの英語アルファベット一文字の名前を持つ言語は大抵存在する。

歴史

  • K&R C
 惣明期。
 言語が規格化されていなかった為、様々な実装が乱立した。
  • C89
 1989年、ANSIによってCの規格が策定された。
 それに伴い、規格非準拠の処理系が駆逐された。
  • C95・C99
 1995年及び1999年、2度にわたって規格が更新された。
 C99における一部の変更は、C++の機能をとりいれたものである。
  • C1X
 次期C言語規格の仮称がC1X。

Cにおける典型的なバグ発生箇所

  • 無効なポインタの参照
  • 配列の範囲外アクセス
  • メモリリーク
  • マクロによる評価順序不一致
  • 未初期化の変数を使用

Cのライブラリによる一般的なテスト・デバッグ手法

  • アサーション
 assertマクロ関数は<assert.h>で定義されている。
 「assert( a == 0 );」のように用いて、
 引数に指定された条件式の評価結果が真になることを保証する。
 実行時に、偽となる式が引数に渡された場合、abort関数を呼び出しプログラムを終了する。
 エラーメッセージは処理系によって異なるが、ファイル名と行番号が含まれる。
 リリースモード(厳密に言えばNDEBUGマクロが定義された状態)では、
 assertは何もせず、assertの引数の評価も行われない。
  • printfデバッグ
 printf関数に限らずputsやfprintf等の出力関数を用いたデバッグ手法を言う。
 ホワイトボックステストに用いることが多い。

コメント

名前:
コメント:

タグ:

+ タグ編集
  • タグ:
最終更新:2011年10月02日 20:49
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。