Cクイックリファレンス 第2版

Book description

本書はプログラミング言語Cの機能を網羅したリファレンスです。言語仕様やライブラリはもちろんのこと、コンパイラやデバッガ、make、IDEまで、およそCプログラミングに関わる事項すべてを網羅します。最新のC11に準拠していますが、歴史的背景や古い時代に使われていた文法にも触れています。日本語版では可能な限りコード例をESCRコーディング規約に従うように書き直し、高品質なコードを書く上での参考となるようにしました。本書はその質、量ともに、C言語リファレンスの決定版です。

Table of contents

  1. 日本語版まえがき
  2. まえがき (1/3)
  3. まえがき (2/3)
  4. まえがき (3/3)
  5. 第Ⅰ部 言語
    1. 1章 言語の基本
      1. 1.1 Cの特徴
      2. 1.2 Cプログラムの構造
      3. 1.3 ソースファイル
      4. 1.4 コメント
      5. 1.5 文字集合
      6. 1.6 識別子
      7. 1.7 Cコンパイラの働き
    2. 2章 型
      1. 2.1 型分類
      2. 2.2 整数型 (1/2)
      3. 2.2 整数型 (2/2)
      4. 2.3 浮動小数点型
      5. 2.4 複素浮動小数点型
      6. 2.5 列挙型
      7. 2.6 型void
      8. 2.7 メモリ内のオブジェクトのアラインメント
    3. 3章 リテラル
      1. 3.1 整数定数
      2. 3.2 浮動小数点定数
      3. 3.3 文字定数
      4. 3.4 文字列リテラル
    4. 4章 型変換
      1. 4.1 算術型の変換 (1/2)
      2. 4.1 算術型の変換 (2/2)
      3. 4.2 非算術型の変換 (1/2)
      4. 4.2 非算術型の変換 (2/2)
    5. 5章 式と演算子
      1. 5.1 式の評価法
      2. 5.2 演算子の詳細 (1/5)
      3. 5.2 演算子の詳細 (2/5)
      4. 5.2 演算子の詳細 (3/5)
      5. 5.2 演算子の詳細 (4/5)
      6. 5.2 演算子の詳細 (5/5)
      7. 5.3 定数式
    6. 6章 文
      1. 6.1 式文
      2. 6.2 ブロック文
      3. 6.3 ループ
      4. 6.4 選択文
      5. 6.5 無条件ジャンプ
    7. 7章 関数
      1. 7.1 関数定義
      2. 7.2 関数宣言
      3. 7.3 関数はどのように実行されるか
      4. 7.4 引数および戻り値としてのポインタ
      5. 7.5 インライン関数
      6. 7.6 戻らない関数
      7. 7.7 再帰関数
      8. 7.8 可変個数引数
    8. 8章 配列
      1. 8.1 配列を定義
      2. 8.2 配列要素にアクセス
      3. 8.3 配列を初期化
      4. 8.4 文字列
      5. 8.5 多次元配列
      6. 8.6 関数の引数としての配列
    9. 9章 ポインタ
      1. 9.1 ポインタを宣言
      2. 9.2 ポインタの演算
      3. 9.3 ポインタと型修飾子
      4. 9.4 配列へのポインタとポインタの配列
      5. 9.5 関数へのポインタ
    10. 10章 構造体、共用体、 ビットフィールド
      1. 10.1 構造体
      2. 10.2 共用体
      3. 10.3 匿名構造体と匿名共用体
      4. 10.4 ビットフィールド
    11. 11章 宣言
      1. 11.1 オブジェクトと関数の宣言 (1/2)
      2. 11.1 オブジェクトと関数の宣言 (2/2)
      3. 11.2 型名
      4. 11.3 typedef宣言
      5. 11.4 _Static_assert宣言
      6. 11.5 識別子のリンケージ
      7. 11.6 オブジェクトの記憶域期間
      8. 11.7 初期化
    12. 12章 動的メモリ管理
      1. 12.1 メモリを動的に割り当て
      2. 12.2 割り当てられたメモリの特性
      3. 12.3 メモリのサイズ変更と解放
      4. 12.4 汎用二分木
      5. 12.5 特性
      6. 12.6 実装 (1/2)
      7. 12.6 実装 (2/2)
    13. 13章 入出力
      1. 13.1 ストリーム
      2. 13.2 ファイル
      3. 13.3 ファイルのオープンとクローズ
      4. 13.4 読み書き (1/4)
      5. 13.4 読み書き (2/4)
      6. 13.4 読み書き (3/4)
      7. 13.4 読み書き (4/4)
      8. 13.5 ランダムファイルアクセス
    14. 14章 マルチスレッド処理
      1. 14.1 スレッド
      2. 14.2 共有データへのアクセス (1/2)
      3. 14.2 共有データへのアクセス (2/2)
      4. 14.3 スレッド間通信:条件変数 (1/2)
      5. 14.3 スレッド間通信:条件変数 (2/2)
      6. 14.4 スレッド局所オブジェクトとスレッド専用記憶
    15. 15章 プリプロセッサ指令
      1. 15.1 ヘッダファイルの内容を取り込む
      2. 15.2 マクロの定義と使用 (1/2)
      3. 15.2 マクロの定義と使用 (2/2)
      4. 15.3 型総称マクロ
      5. 15.4 条件コンパイル
      6. 15.5 行番号を定義する
      7. 15.6 エラーメッセージを生成
      8. 15.7 #pragma指令
      9. 15.8 _Pragma演算子
      10. 15.9 定義済みマクロ
  6. 第Ⅱ部 標準ライブラリ
    1. 16章 標準ヘッダ
      1. 16.1 標準ヘッダを使う
      2. 16.2 境界検査関数
      3. 16.3 標準ヘッダの内容 (1/6)
      4. 16.3 標準ヘッダの内容 (2/6)
      5. 16.3 標準ヘッダの内容 (3/6)
      6. 16.3 標準ヘッダの内容 (4/6)
      7. 16.3 標準ヘッダの内容 (5/6)
      8. 16.3 標準ヘッダの内容 (6/6)
    2. 17章 関数の機能別まとめ
      1. 17.1 入出力
      2. 17.2 数学関数 (1/2)
      3. 17.2 数学関数 (2/2)
      4. 17.3 文字分類と変換
      5. 17.4 文字列処理
      6. 17.5 マルチバイト文字
      7. 17.6 数と文字列との変換
      8. 17.7 探索と整列
      9. 17.8 メモリブロック処理
      10. 17.9 動的メモリ管理
      11. 17.10 日付と時刻
      12. 17.11 プロセス制御
      13. 17.12 国際化
      14. 17.13 非局所ジャンプ
      15. 17.14 マルチスレッド(C11)
      16. 17.15 デバッグ
      17. 17.16 エラーメッセージ
    3. 18章 標準ライブラリ関数 (1/65)
    4. 18章 標準ライブラリ関数 (2/65)
    5. 18章 標準ライブラリ関数 (3/65)
    6. 18章 標準ライブラリ関数 (4/65)
    7. 18章 標準ライブラリ関数 (5/65)
    8. 18章 標準ライブラリ関数 (6/65)
    9. 18章 標準ライブラリ関数 (7/65)
    10. 18章 標準ライブラリ関数 (8/65)
    11. 18章 標準ライブラリ関数 (9/65)
    12. 18章 標準ライブラリ関数 (10/65)
    13. 18章 標準ライブラリ関数 (11/65)
    14. 18章 標準ライブラリ関数 (12/65)
    15. 18章 標準ライブラリ関数 (13/65)
    16. 18章 標準ライブラリ関数 (14/65)
    17. 18章 標準ライブラリ関数 (15/65)
    18. 18章 標準ライブラリ関数 (16/65)
    19. 18章 標準ライブラリ関数 (17/65)
    20. 18章 標準ライブラリ関数 (18/65)
    21. 18章 標準ライブラリ関数 (19/65)
    22. 18章 標準ライブラリ関数 (20/65)
    23. 18章 標準ライブラリ関数 (21/65)
    24. 18章 標準ライブラリ関数 (22/65)
    25. 18章 標準ライブラリ関数 (23/65)
    26. 18章 標準ライブラリ関数 (24/65)
    27. 18章 標準ライブラリ関数 (25/65)
    28. 18章 標準ライブラリ関数 (26/65)
    29. 18章 標準ライブラリ関数 (27/65)
    30. 18章 標準ライブラリ関数 (28/65)
    31. 18章 標準ライブラリ関数 (29/65)
    32. 18章 標準ライブラリ関数 (30/65)
    33. 18章 標準ライブラリ関数 (31/65)
    34. 18章 標準ライブラリ関数 (32/65)
    35. 18章 標準ライブラリ関数 (33/65)
    36. 18章 標準ライブラリ関数 (34/65)
    37. 18章 標準ライブラリ関数 (35/65)
    38. 18章 標準ライブラリ関数 (36/65)
    39. 18章 標準ライブラリ関数 (37/65)
    40. 18章 標準ライブラリ関数 (38/65)
    41. 18章 標準ライブラリ関数 (39/65)
    42. 18章 標準ライブラリ関数 (40/65)
    43. 18章 標準ライブラリ関数 (41/65)
    44. 18章 標準ライブラリ関数 (42/65)
    45. 18章 標準ライブラリ関数 (43/65)
    46. 18章 標準ライブラリ関数 (44/65)
    47. 18章 標準ライブラリ関数 (45/65)
    48. 18章 標準ライブラリ関数 (46/65)
    49. 18章 標準ライブラリ関数 (47/65)
    50. 18章 標準ライブラリ関数 (48/65)
    51. 18章 標準ライブラリ関数 (49/65)
    52. 18章 標準ライブラリ関数 (50/65)
    53. 18章 標準ライブラリ関数 (51/65)
    54. 18章 標準ライブラリ関数 (52/65)
    55. 18章 標準ライブラリ関数 (53/65)
    56. 18章 標準ライブラリ関数 (54/65)
    57. 18章 標準ライブラリ関数 (55/65)
    58. 18章 標準ライブラリ関数 (56/65)
    59. 18章 標準ライブラリ関数 (57/65)
    60. 18章 標準ライブラリ関数 (58/65)
    61. 18章 標準ライブラリ関数 (59/65)
    62. 18章 標準ライブラリ関数 (60/65)
    63. 18章 標準ライブラリ関数 (61/65)
    64. 18章 標準ライブラリ関数 (62/65)
    65. 18章 標準ライブラリ関数 (63/65)
    66. 18章 標準ライブラリ関数 (64/65)
    67. 18章 標準ライブラリ関数 (65/65)
  7. 第Ⅲ部 基本ツール
    1. 19章 GCCでコンパイル
      1. 19.1 GNUコンパイラコレクション
      2. 19.2 GCCの入手とインストール
      3. 19.3 GCCでCプログラムをコンパイルする (1/3)
      4. 19.3 GCCでCプログラムをコンパイルする (2/3)
      5. 19.3 GCCでCプログラムをコンパイルする (3/3)
      6. 19.4 Cの方言
      7. 19.5 コンパイラ警告
      8. 19.6 最適化
      9. 19.7 デバッグ
      10. 19.8 プロファイリング
      11. 19.9 オプションと環境変数のまとめ
    2. 20章 makeでCプログラムを ビルドする
      1. 20.1 ターゲット、前提条件、コマンド
      2. 20.2 makeファイル
      3. 20.3 ルール
      4. 20.4 コメント
      5. 20.5 変数
      6. 20.6 phonyターゲット
      7. 20.7 他のターゲット属性
      8. 20.8 マクロ
      9. 20.9 関数
      10. 20.10 指令
      11. 20.11 makeを実行する (1/2)
      12. 20.11 makeを実行する (2/2)
    3. 21章 GDBでデバッグする
      1. 21.1 GDBのインストール
      2. 21.2 デバッグセッションの例
      3. 21.3 GDBの開始 (1/2)
      4. 21.3 GDBの開始 (2/2)
      5. 21.4 GDBコマンドの使用 (1/5)
      6. 21.4 GDBコマンドの使用 (2/5)
      7. 21.4 GDBコマンドの使用 (3/5)
      8. 21.4 GDBコマンドの使用 (4/5)
      9. 21.4 GDBコマンドの使用 (5/5)
      10. 21.5 GDBでコアファイルを分析する
    4. 22章 CのIDEを使う
      1. 22.1 CのIDE
      2. 22.2 C/C++用Eclipse CDT
      3. 22.3 EclipseでCプログラムを開発する
      4. 22.4 EclipseでCプログラムをデバッグする
      5. 22.5 Eclipseについての追加情報
  8. 訳者あとがき
  9. 索引 (1/6)
  10. 索引 (2/6)
  11. 索引 (3/6)
  12. 索引 (4/6)
  13. 索引 (5/6)
  14. 索引 (6/6)

Product information

  • Title: Cクイックリファレンス 第2版
  • Author(s): Peter Prinz, Tony Crawford, 黒川 利明, 島 敏博
  • Release date: November 2016
  • Publisher(s): O'Reilly Japan, Inc.
  • ISBN: 9784873117812

You might also like

book

プログラミングRust 第2版

by Jim Blandy, Jason Orendorff, Leonora F. S. Tindall, 中田 秀基

次世代ブラウザ開発用にMozillaによって開発されたRustは、C/C++並みのパフォーマンスと低レベルの制御能力に加え、メモリとスレッドの安全性を担保し、さらに並行性にも優れるといった特徴を持つ、優秀な言語です。本書はMozillaで実際にRustを使ってFirefoxを開発している著者らによる、言語の概要と用途について解説する書籍で、Rustのほとんどの機能を詳細にカバーします。Rustのメジャーバージョンアップにより非同期処理が可能となったことに対応し、第2版では新たに非同期処理の章を設け、この機能を詳細に解説しています。Rust 2021対応。

book

Rustの練習帳 ―コマンドラインツールの作成を通してRustを学ぶ

by Ken Youens-Clark, 中山 光樹

Rustは速度や安全性、並行性に優れたプログラミング言語で、ゲームエンジン、オペレーティングシステム、ブラウザなど、さまざまな分野で使われています。Rustは学習が難しい言語だと言われていますが、本書では小さなコマンドラインツールを多数書くことを通して、Rustの機能やテスト方法を素早く学ぶことができます。各章では、Rustの重要な概念を取り上げ、関連するコマンドラインツールを作成しながら学習を進めていきます。Rustの初心者から経験者まで、実際にプログラムを書きながらスキルを向上させたい人に最適な一冊です。

book

ネットワーク自動化とプログラマビリティ ―次世代ネットワークエンジニアのためのスキルセット

by Jason Edelman, Scott S. Lowe, Matt Oswalt, 土屋 太二, 牧野 聡

本書はネットワーク自動化とプログラマビリティにフォーカスした解説書で、ネットワークエンジニアの業務を「より効率良く」「より生産的に」進化させるためのエッセンスが詰まったノウハウ集です。ネットワーク運用業務(ネットワーク装置のコンフィグレーションやトポロジー管理、サービス死活監視など)をどのように効率化・自動化させるかという観点から、次世代ネットワークエンジニアが知るべきすべての側面を網羅的に解説します。Pythonを用いたプログラミングの基本から、Linuxの操作、データモデル、Gitによる管理、実践的な自動化ツールの解説まで幅広く扱います。

book

ハイパフォーマンスPython 第2版

by Micha Gorelick, Ian Ozsvald, 中山 光樹

Pythonの高速化技法を学ぶロングセラー書の改訂版。待望のPython 3対応。本書ではCPUやメモリ使用量の観点からハイパフォーマンスなコードを書くための考え方や手法を解説します。そのために、パフォーマンスのボトルネックを測定する方法から、最適なデータ構造の選択方法、CythonやNumbaなどのコンパイラの比較、非同期処理、マルチコアCPUの活用法といった最適化のノウハウを、シンプルなサンプルプログラムを使って実際に効果を確認しながら学びます。本書で学べる考え方や手法はPython以外にも適用できるので、ハイパフォーマーを目指すプログラマーは必携の一冊です。