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

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

by Micha Gorelick, Ian Ozsvald, 中山 光樹

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

book

リーダーの作法 ―ささいなことをていねいに

by Michael Lopp, 和智 右桂

リーダーシップは一部の人だけに与えられる天職であり、複雑で膨大なリーダーシップの哲学を実践しなければならないと思われがちですが、そんなことはありません。ささいな行動を日々繰り返すことで、お互いを尊敬し、信頼し合うチームを作ることができます。 Netscapeでマネージャー、Appleでディレクター、Slackでエグゼクティブを経験した著者が、それぞれの立場のリーダーに必要な振る舞いを30のエッセイで紹介します。 1on1での傾聴、信頼関係の築き方、仕事の任せ方、メンバーのほめ方、チーム内のうわさ話への対応、組織の文化の作り方など、マネジメントの場面で出会うさまざまなテーマをとりあげ、リーダーとしての具体的な行動や考え方を解説します。

book

Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎

by Andreas C. Muller, Sarah Guido, 中田 秀基

Pythonの機械学習用ライブラリの定番、scikit-learnのリリースマネージャを務めるなど開発に深く関わる著者が、scikit-learnを使った機械学習の方法を、ステップバイステップで解説します。ニューラルネットを学ぶ前に習得しておきたい機械学習の基礎をおさえるとともに、優れた機械学習システムを実装し精度の高い予測モデルを構築する上で重要となる「特徴量エンジニアリング」と「モデルの評価と改善」について多くのページを割くなど、従来の機械学習の解説書にはない特長を備えています。