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

PyTorchとfastaiではじめるディープラーニング ―エンジニアのためのAIアプリケーション開発

by Jeremy Howard, Sylvain Gugger, 中田 秀基

本書は、ディープラーニングのトレーニングコースを提供するサイトfast.aiの創始者らが、PyTorchとその上に構築されたライブラリfastaiを用いてディープラーニングを行う方法を解説するものです。特別な訓練や数学の深い知識がなくても実践できるように、平易な言葉と数多くの図でていねいに説明しています。サンプルコードはすべてJupyterノートブックで提供されており、簡単に試すことが可能。元Kaggleトップの起業家、ジェレミー・ハワードと教育のプロ、シルヴェイン・ガガーによる渾身の一冊です。

book

進化的アーキテクチャ ―絶え間ない変化を支える

by Neal Ford, Rebecca Parsons, Patrick Kua, 島田 浩二

現代におけるエンタープライズアーキテクチャは、もはや静的な計画をあてにすることはできなくなっています。そしてソフトウェア開発エコシステムは、ツールやフレームワーク、技術イノベーションの流れと共に絶え間なく変化しています。こうした状況の中で、いったん構築したシステムを成長させていくには、さまざまな変化に適応しながら進化するアーキテクチャをシステムに組み込む必要があります。本書は、そうしたアーキテクチャを「進化的アーキテクチャ」と名付け、その構築に必要な考え方や技術、実践方法などについて解説するものです。

book

ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化

by Ilya Grigorik, 和田 祐一郎/株式会社プログラミングシステム社

現代のアプリケーションエンジニアは、UIやデータ処理、開発言語、プラットフォームの仕様や癖だけでなく、サーバやネットワークについても、上から下まで、表から裏まで広く知ることを求められます。本書は「ブラウザ」に関連し、インターネットで使用されるさまざまなネットワーク技術をまとめたものです。HTTP/2.0やWebRTCなどの最新技術、WebSocketやXMLHttpRequestなどのブラウザAPI、そしてそれらの土台となるTCPやUDPやトランスポート層についてまでを幅広くカバーします。また改善前後の性能・速さを可能な限り具体化し、それぞれの場面においてのパフォーマンス改善幅を示します。