標準プログラマーズ ライブラリシリーズC言語 関数の使い方+作り方完全制覇

[表紙]C言語 関数の使い方+作り方完全制覇

紙版発売

B5変形判/448ページ

定価2,728円(本体2,480円+税10%)

ISBN 4-7741-1300-X

ただいま弊社在庫はございません。

→学校・法人一括購入ご検討の皆様へ

書籍の概要

この本の概要

C言語を学び始めて日が浅い学習者に送るC言語関数の入門書です。ANSI C標準ライブラリの全容を明らかにして,より有用な働きをするオリジナルの関数の作り方を詳解します。この1冊でライブラリ関数の使用法とオリジナル関数の作り方を押さえることができます。

こんな方におすすめ

  • C言語で関数を作りたい人
  • C言語についての理解を深めたい人

著者の一言

Cプログラマは,必要な時に必要な関数を,いつでも自在に定義できなければなりません。Cとは,結局は,関数定義を中心とした手続き型言語だからです。しかし,単に機能する関数を定義することと,使いものになるフォーマルな関数を定義することとの間には大きい隔たりがあります。

ANSI C標準ライブラリから「フォーマルな関数作りの技法の粋を学びとる」ことができれば,それは,Cだけでなく,C++,C#,Javaなどの他の言語でも役立ちます。

目次

第1章 Cの関数作りと関数用法の基本

  • 1.1 Cの変数の取り扱い
    • 1.1.1 ローカル変数のスコープと寿命と初期化
    • 1.1.2 ローカル変数の独立性と持続性の欠如
    • 1.1.3 staticローカル変数の独立性喪失と持続性の獲得
    • 1.1.4 staticローカル変数のスコープと寿命と初期化
    • 1.1.5 グローバル変数のスコープと寿命と初期化
    • 1.1.6 staticグローバル変数の遮蔽
  • 1.2 関数呼び出しと変数との関係
    • 1.2.1 関数定義の構文
    • 1.2.2 関数のプロトタイプ宣言
    • 1.2.3 仮引数と引数との関係
    • 1.2.4 return文が返す実体と戻り値との関係
  • 1.3 値渡しと参照渡し
    • 1.3.1 値渡しとは
    • 1.3.2 参照渡しとは
    • 1.3.3 const修飾子と変数の保護
  • 1.4 ソースコードの分割と分割コンパイル
    • 1.4.1 外部変数の取り扱い
    • 1.4.2 外部関数の取り扱い
  • 1.5 関数のモジュール化と再利用
  • 第1章のまとめ

第2章 文字判定と文字変換を行う関数

  • 2.1 文字判定関数
  • 2.2 文字変換関数
  • 2.3 文字判定関数を使う
    • 2.3.1 ISTESTプログラムの詳細
    • 2.3.2 漢字第2バイトを観察する
  • 2.4 文字変換関数を使う
  • 2.5 文字判定関数を作ってみる
  • 2.6 文字変換関数を作ってみる
    • 2.6.1 文字変換関数の定義
    • 2.6.2 10進の数字文字列と数値間のデータ変換
  • 2.7 データ変換関数を作ってみる
    • 2.7.1 const char *型仮引数の意味
    • 2.7.2 2つのデータ変換関数の定義
  • 第2章のまとめ

第3章 文字列を操作する関数

  • 3.1 文字列操作関数
  • 3.2 文字列操作関数を使う
    • 3.2.1 文字列をコピーする関数を使う
    • 3.2.2 文字列を連結する関数を使う
    • 3.2.3 文字と文字セットと文字列を検索する関数を使う
    • 3.2.4 文字列を比較する関数を使う
    • 3.2.5 トークンを切り出す関数を使う
  • 3.3 文字列操作関数を作ってみる
    • 3.3.1 strchr()関数の漢字識別版を作成する
    • 3.3.2 strpbrk()関数の漢字識別版を作成する
    • 3.3.3 strstr()関数の漢字識別版を作成する
  • 第3章のまとめ

第4章 データを変換,書式化する関数

  • 4.1 データ変換関数
    • 4.1.1 errno変数の取り扱い
    • 4.1.2 データ型定数の取り扱い
    • 4.1.3 データ変換関数の詳細
  • 4.2 書式付き入出力関数
    • 4.2.1 printf()系関数の書式指定
    • 4.2.2 scanf()系関数の書式指定
    • 4.2.3 書式付き入出力関数の詳細
  • 4.3 データ変換関数を使う
    • 4.3.1 10進基数の整数値生成関数を使う
    • 4.3.2 char **型仮引数の意味
    • 4.3.3 基数依存の整数値生成関数を使う
    • 4.3.4 10進基数の浮動小数点数値生成関数を使う
  • 4.4 書式付き入出力関数を使う
    • 4.4.1 書式付き出力関数を使う
    • 4.4.2 書式付き入力関数を使う
  • 4.5 データ変換関数を作ってみる
  • 第4章のまとめ

第5章 入出力関数とファイル操作関数

  • 5.1 入出力の基本事項
    • 5.1.1 ストリームとストリームポインタ
    • 5.1.2 標準入出力と標準入出力関数
    • 5.1.3 標準入出力のリダイレクト
    • 5.1.4 テキストモードとバイナリモードの意味の違い
    • 5.1.5 標準入出力の信頼性を確保する
    • 5.1.6 入出力関数とファイル操作関数用の定義済み定数
  • 5.2 入出力関数
  • 5.3 ファイルとバッファを操作する関数
  • 5.4 入出力補助関数
  • 5.5 ファイル操作関数を使う
    • 5.5.1 大型ファイルをコピーする
    • 5.5.2 構造体レコードのファイルを操作する
    • 5.5.3 バッファリング形式を変更する
  • 5.6 文字列入出力関数を使う
    • 5.6.1 gets()とputs()版フィルタプログラムを作る
    • 5.6.2 fgets()とfputs()版フィルタプログラムを作る
  • 第5章のまとめ

第6章 検索と並べ替え(ソート)を行う関数

  • 6.1 検索ソート関数
    • 6.1.1 関数ポインタとは
    • 6.1.2 関数ポインタ型仮引数の意味
    • 6.1.3 関数のモジュール化と再利用
    • 6.1.4 疑似乱数生成関数と検索ソート関数の詳細
  • 6.2 検索ソート関数を使う
    • 6.2.1 疑似乱数を生成する
    • 6.2.2 独自の比較関数を定義してqsort()関数を使う
    • 6.2.3 独自の比較関数を定義してbsearch()関数を使う
  • 6.3 独自のアルゴリズム関数を作ってみる
    • 6.3.1 関数が取り扱うデータを汎用化する
    • 6.3.2 要素比較関数をモジュール化する
  • 第6章のまとめ

第7章 数値演算を行う関数

  • 7.1 数値演算関数
  • 7.2 数値演算関数を使う
    • 7.2.1 絶対値関数を使う
    • 7.2.2 剰余関数を使う
    • 7.2.3 指数対数関数を使う
    • 7.2.4 累乗関数を使う
    • 7.2.5 三角関数を使う
    • 7.2.6 双曲線関数を使う
  • 7.3 数値演算関数を作ってみる
    • 7.3.1 整数の10進総桁数を求める関数を作る
    • 7.3.2 2点間の距離を求める関数を作る
    • 7.3.3 いろいろな端数処理の除算関数を作る
  • 第7章のまとめ

第8章 メモリを操作する関数

  • 8.1 メモリ操作関数
    • 8.1.1 voidポインタとは
    • 8.1.2 voidポインタの取り扱い
    • 8.1.3 メモリ操作関数の詳細
  • 8.2 メモリ操作関数を使う
    • 8.2.1 NULLポインタの取り扱いとメモリの解放
    • 8.2.2 動的に割り当てたメモリを初期化する
    • 8.2.3 割り当て済みのメモリ領域をサイズ変更する
    • 8.2.4 メモリ上の文字をコピー,移動する
    • 8.2.5 メモリ上の文字を検索,比較する
  • 8.3 クローン生成関数を作ってみる
    • 8.3.1 クローン生成関数の仕様
    • 8.3.2 メモリ一括解放のしくみを作る
    • 8.3.3 クローン生成関数を作成する
  • 第8章のまとめ

第9章 システム関数とその他のマクロ

  • 9.1 システム関数とその他のマクロ
    • 9.1.1 システム関数とその他のマクロ
    • 9.1.2 システム関数とその他のマクロの詳細
    • 9.1.3 ソースファイル関連マクロとその用法
    • 9.1.4 va_list型と引数リストアクセスマクロの用法
  • 9.2 システム関数とその他のマクロを使う
    • 9.2.1 コマンドプロセッサを起動する関数を使う
    • 9.2.2 終了関数を使う
    • 9.2.3 診断マクロを使う
    • 9.2.4 エラーメッセージ関数を使う
    • 9.2.5 引数リスト付き書式整形関数を使う
    • 9.2.6 シグナル割り込み関数を使う
    • 9.2.7 ジャンプ関数とマクロを使う
    • 9.2.8 オフセット算定マクロを使う
  • 第9章のまとめ

第10章 時間を操作する関数

  • 10.1 時間操作関数
    • 10.1.1 time_t型とtm構造体
    • 10.1.2 時間操作関数の詳細
  • 10.2 時間操作関数を使う
    • 10.2.1 現在の時刻を表示する
    • 10.2.2 time_t型とtm構造体間でデータを変換する
    • 10.2.3 clock_t型とCLOCKS_PER_SECマクロ
    • 10.2.4 ラップタイムを計測する
    • 10.2.5 カレンダ時刻の時間差を求める
    • 10.2.6 strftime()関数用の変換指定子とフラグ
    • 10.2.7 時刻情報を任意に書式整形する
  • 10.3 独自の時間操作関数を作ってみる
    • 10.3.1 簡単な世界時計プログラムを作る
    • 10.3.2 動作停止関数を作成する
    • 10.3.3 文字列を時刻情報に変換する関数を作成する
    • 10.3.4 2つの時刻文字列から差異日数を求める関数を作成する
  • 第10章のまとめ
  • 最後に
  • 標準関数&用語索引