* 連載・実用Cプログラミング・テクニック [#a7e40111] -日経ソフトウェア2006年7月~2007年6月号 -全12回 -対象処理系: Borland C++ 5.5 (Cコンパイラとして使用) -[[連載/100.基本はいつもC言語]]の続編としての中級編 -内容は全面改定され、連載時にカットされた原稿も復活、対象処理系をVisual C++ 2008/MinGWに変更して[[単行本/100.C言語教科書【入門編】]]に収録 -第5,6,9回を除き、内容は全面改定され、連載時にカットされた原稿も復活、対象処理系をVisual C++ 2008/MinGWに変更して[[単行本/100.C言語教科書【入門編】]]に収録 (2009/07/28現在、第5,6,9回相当の内容は雑誌バックナンバーを探す以外に読む手段はありません) ** 詳細内容 [#u4463125] (リスト作成予定) ** 第1回 ソースを自在に書き換えるマクロとプリプロセサ [2006年7月号掲載] [#je8a642c] Visual BasicをCでコンパイル!? マクロを使ったトリックの仕組み マクロの本当の使い方 関数のように使うマクロ 機能が同じでも「同じではない」マクロと関数の大きな違い マクロの使い過ぎは禁物 長いマクロを正しく動作するように書くテクニック マクロは自動ソース生成だ! ** 第2回 分担してプログラムを作るモジュール化プログラミング [2006年8月号掲載] [#h3553bec] モジュール化プログラミングの考え方 モジュールの関係を取り決めよう 不完全なソースコードの文法チェック ヘッダー・ファイルのもう一つの効能 おっと設計変更だ! またまた設計変更だ! 同じ名前の関数を作ってしまったが? いよいよ実行ファイルを作る モジュール化プログラミングとは何か モジュール化プログラミングをもっと楽に ** 第3回 先人の「良い横着」が生んだ素敵な定番ツールmake [2006年9月号掲載] [#td0acadd] makeでHello World! コマンド長すぎ!もっと楽をしたいぞ! 集計プログラムを実行せよ シンプルなメイクファイルで一発コンパイル オブジェクト・ファイル単位に分けてメイクする 間接的な依存関係も間違いなく処理される Cでオブジェクト指向をのぞいてみよう ** 第4回 Cでも書ける!役に立つ!オブジェクト指向「のようなもの」 [2006年10月号掲載] [#wedd2927] if文なしで処理を振り分ける「ポリモーフィズム」 「関数へのポインタ」でオブジェクトを実現 構造体によるオブジェクト ポリモーフィズムの活用例 オブジェクトを作るファクトリ コラム 乱数を使う コラム 入力を処理するscanf ** 第5回 身近にある未知の世界Windowsプログラミングに挑戦(1) [2006年11月号掲載] [#m1d07f30] 標準CライブラリはWindowsをUNIXに見せかけている 最も有名なサンプル「GENERIC」 WinMain関数から実行が始まる 三つのAPI関数でウィンドウを作れる ウィンドウ・クラスは何のためにある? 次回,ウィンドウに「機能」を持たせよう ** 第6回 メッセージ駆動の仕組みとリソースWindowsプログラミングに挑戦(2) [2006年12月号掲載] [#b980ea6a] 処理の主導権がユーザーに移る 外部からの「メッセージ」でプログラムを動かす ウィンドウ関数によるメッセージ駆動の仕組み message引数の値で処理を振り分ける ウィンドウと似て非なるダイアログボックスの処理 再コンパイルせずにプログラムを英語版にする リソースを差し替えてみよう なぜダイアログボックスが特別扱いなのか CでもっとWindowsを乗りこなそう ** 第7回 システム/ユーザー固有の情報を「環境変数」でプログラムに伝える [2007年1月号掲載] [#haf53b3f] プログラムの動作を「環境変数」でカスタマイズする 自分専用の環境変数を作ってみよう 環境変数でカスタマイズ可能なプログラムを作る プログラムから環境変数を書き換えたい! 書き込んでも環境変数が変わらない理由 親プロセスには影響を及ぼせないが… コラム 環境変数PATHを簡単に書き換える方法 ** 第8回 ソースを差し替え,時刻も刻めるマクロ/プリプロセサをさらに活用 [2007年2月号掲載] [#u4f12270] コンパイルするコードを条件判断で切り替える #ifdefで実現する「品川からの距離」 判断をもっとエレガントに! マクロをデバッグに活用する コンパイルした日付時刻を実行ファイル内に記録 マクロの乱用にはご注意 コラム マクロによる文字列置き換えのおさらい コラム 既存のマクロを眺めてみよう コラム 名前の連結 コラム 定義したマクロは解除できる ** 第9回 あの小さな不満を解決改良版CとしてC++を使おう [2007年3月号掲載] [#zdf8b2e8] “Better C”プログラムの動かし方 変数をどこでも宣言できる ループ変数の手軽な宣言 同じ名前の関数を複数個作れる デフォルト値の指定で引数を減らす 構造体のメンバーとして関数を入れる Cより安全・確実なメモリー確保 Better CはC++そのものではないことに注意 コラム 標準出力をファイルとして扱うstdoutシステム変数 ** 第10回 makeをもっと活用するメイクファイル短縮の技 [2007年4月号掲載] [#ga71adc5] makeの特徴を失うことなくサイズを減らす ヘッダー・ファイルの依存性を解決する 暗黙的ルールで依存関係をシンプルにする makeにビルドインされたルールを活用する マクロを活用して重複を取り去る 共通パターンをメイクファイルにして再利用する BUILTINS.MAKを乗っ取れ! ゴミ掃除をmakeで自動化する ターゲット指定で実行ファイルを作り分ける ** 第11回 入口一つで出口が二つ?標準エラー出力を活用する [2007年5月号掲載] [#rf648ae7] あなたの目の前にある「標準エラー出力」 標準エラー出力への出力方法 エラー内容を具体的にレポートする エラー処理を強化する切り札,perror関数 簡潔に書けばチェック個所を増やしやすい 実際のプログラムで使う標準エラー出力 ** 最終回 (第12回) バイナリ・データも扱える!標準入出力で画像を処理する [2007年6月号掲載] [#kdc80d2a] BMPファイルのフォーマットを読み解く BMPファイルを加工する パイプを通らないバイナリ 標準入出力でバイナリを扱う方法 Cの可能性は無限大!!