C/C++プログラミングの「迷信」「誤解」

[表紙]C/C++プログラミングの「迷信」と「誤解」

紙版発売

A5判/272ページ

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

ISBN 978-4-7741-4587-7

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

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

書籍の概要

この本の概要

C/C++プログラマーは大勢います。しかし,その多くは学校などでの基礎教育を経たら,もうすぐに実作業を通して言語の習得をしています。実は,そこに大きな落とし穴があります。当然のことと思われている知識の中に間違っているものがたくさんあるのです。聞きかじり,思い込み,勝手な解釈……などにより「迷信」は生まれ,それはインターネットなどでも広がっていき,バグの“もと”ともなっています。本書は,C/C++にまつわる迷信,誤解,よくある間違いを根本から正すことを目的とするものです。経験者にも未経験者にも最適です!

こんな方におすすめ

  • すべてのC/C++プログラマー
  • とりわけ中級レベルの現役プログラマー,次いで入門者・学習者

目次

第1章 初心者にありがちな迷信

  • 割り付けたオブジェクトはプログラマーが自分で解放しなければならない!?
  • NULLと0は同義!?
  • sizeofは関数!?
  • 漢字は2バイト!?
  • 値を返さないmainの返却値の型はvoid!?
  • インクルードガードで囲まれたコードはプログラム全体で一度しか有効にならない!?
  • info... 規格の引用について

第2章 言語仕様にまつわる迷信

  • プログラムは必ずmainから始まる!?
  • 実数を扱うには浮動小数点型を使う!?
  • 一重引用符の中には1 文字しか書けない!?
  • 2の累乗による除算と右シフトは等価!?
  • 2の累乗による乗算と左シフトは等価!?
  • 文字列リテラルによる配列の初期化では,残りの要素はナル文字で埋められる!?
  • 0xe-0xe はゼロ!?
  • マクロが-1に置換されるなら括弧はいらない!?
  • info... CとC++のバージョン

第3章 ライブラリ仕様にまつわる迷信

  • doubleの出力書式は"%lf"!?
  • ffl ushで入力バッファをクリア!?
  • 文字列から整数への変換にはatoi!?
  • scanfはバッファオーバーランを防げない!?
  • islowerの引数はchar型!?
  • EOFはで-1に定義される!?
  • absは負の値を返さない!?

第4章 C++特有の迷信

  • static_castのような一般的ではない機能は使うべきではない!?
  • コンストラクタから例外をthrowしてはならない!?
  • try,catch,throwを書かなければ例外処理は関係なくなる!?
  • デストラクタは必ず仮想関数でなければならない!?
  • 部分オブジェクトの初期化順序など知る必要がない!?
  • ポインタを型変換してもアドレスは変わらない!?
  • 構造体はクラスではない!?
  • info... いろいろなクラス

第5章 プログラミング技法に関する迷信

  • とりあえずmemsetでゼロクリア!?
  • 配列や構造体をmemsetで一括ゼロクリア!?
  • getsは単純にfgetsに置き換えられる!?
  • scanfではなくfgetsとsscanfを使うべし!?
  • new(nothrow)で例外処理のオーバーヘッドを回避!?
  • ヘッダファイルで関数を定義してはならない!?

第6章 移植性にまつわる迷信

  • char型は符号付き!?
  • 'A'.'Z'の値は連続している!?
  • ワイド文字とはUnicodeのこと!?
  • 1バイトは8ビット!?
  • info... intとcharのサイズが同じ奇妙な世界

第7章 その他の迷信

  • freeでメモリを「開放」する!?
  • // で始まるコメントは行末まで!?
  • グローバル変数は厳禁!?
  • C++コンパイラならCのソースもそのまま使える!?
  • info... 迷信とは何か?

用語集

著者プロフィール

高木信尚(たかぎのぶひさ)

昭和42年生まれ,大阪市在住。ゲーム機メーカー勤務,個人事業主を経て,現在,株式会社きじねこ代表取締役,株式会社クローバーフィールド代表取締役。NPO法人TOPPERSプロジェクト特別会員。