marunomaruno-memo

marunomaruno-memo

C言語 入門書の次に読む本

2005年09月28日 | C / C++
http://www.gihyo.co.jp/books/syoseki.php/4-7741-1797-8

C言語 入門書の次に読む本
坂井弘亮 著 / A5判 / 400ページ
ISBN4-7741-1797-8 / 2003年8月2日発売

定価2604円(本体2480円)

1 基本的なスタイル
1.1 スタイルとは
1.2 分割コンパイルとリンク
1.2.1 なぜ分割するのか
1.2.2 1人で開発する場合にも利点はあるのか
1.2.3 分割の方法
1.2.4 分割の例
1.2.5 コンパイラの動作
1.2.6 名前の衝突
1.3 宣言
1.3.1 関数の暗黙の宣言
1.3.2 関数のプロトタイプ宣言
1.3.3 分割コンパイルへの応用
1.3.4 static接頭語
1.3.5 extern接頭語
1.3.6 変数の場合
1.3.7 まとめと問題点
1.4 ヘッダファイルの作成
1.4.1 ヘッダファイルとは
1.4.2 基本的な作り方
1.4.3 作成の例
1.4.4 作成の指針
1.4.5 voidの利用
1.4.6 enumの利用
1.4.7 constの利用
1.4.8 constを引数として利用
1.4.9 constで注意すべきこと
1.4.10 バグの例
2 ライブラリの作成
2.1 なぜライブラリを作成するのか
2.2 ヘッダファイルの作り方
2.2.1 マクロの定義
2.2.2 定数の定義
2.2.3 構造体、共用体の定義
2.2.4 型の定義
2.2.5 関数のプロトタイプ宣言
2.2.6 グローバル変数のextern宣言
2.2.7 他のライブラリにおけるヘッダファイルのインクルード
2.2.8 多重インクルードの問題
2.3 ライブラリの本体の作り方
2.3.1 マクロ、定数、構造体、共用体、型の定義
2.3.2 外部に公開する関数、グローバル変数の本体
2.3.3 外部に公開しない関数や広域変数の本体
2.3.4 ライブラリのヘッダファイルのインクルード
2.3.5 他のライブラリのヘッダファイルのインクルード
2.4 Makefile
2.5 乱数発生用ライブラリの作成
2.5.1 仕様
2.5.2 ライブラリのリスト
2.5.3 使用例
2.6 発展した話題
2.6.1 構造体のメンバの隠蔽
2.6.2 パブリックヘッダファイルとプライベートヘッダファイル
3 設計
3.1 アルゴリズム
3.1.1 アルゴリズムと設計
3.1.2 線形検索
3.1.3 学習
3.1.4 ハッシュ
3.2 データ構造
3.2.1 配列
3.2.2 リンクリスト
3.3 設計の例
3.4 メモリ管理用ライブラリの作成
3.4.1 ライブラリの概要
3.4.2 データ構造の設計
3.4.3 ライブラリのリスト
3.4.4 動作確認
4 バグを出さないために
4.1 ツールの利用
4.2 バグを発生させないコーディング
4.2.1 1つのローカル変数を複数の目的に使用しない
4.2.2 関数の引数を別の用途に利用しない
4.2.3 malloc()とfree()は近くに書く
4.2.4 構造体は作成すると同時に初期化する
4.2.5 関連のあるコードは近くに置く
4.2.6 ポインタのNULLクリア
4.2.7 キャストは少なく
4.2.8 キャストは多く
4.2.9 名前の付け方を統一する
4.2.10 sizeof(char)の明示
4.2.11 チェックしやすい書き方を選択
4.2.12 意図の伝わらない書き方はしない
4.2.13 良く考えて書く
4.3 バグ発生後に対処しやすいコーディング
4.3.1 解放したらNULLクリアする
4.3.2 関数の先頭で引数のチェックを行う
4.4 調査のためのコーディング
4.4.1 関連のあるものは、1つのディレクトリにまとめる
4.4.2 関数を複数行に分けない
4.4.3 grepでの検索を意識する
4.4.4 自作ツールの利用を意識する
4.5 すぐに修正/確認ができること
4.5.1 中括弧を省略しない
4.5.2 returnは1箇所でまとめる
4.5.3 似た処理は1箇所にまとめる
4.5.4 すぐに確認を行う
4.6 将来性があること
4.6.1 ブロックのネストを深くしない
4.6.2 gotoの利用をためらわない
4.7 コーディング時に気をつけること まとめ
4.7.1 楽すること
4.7.2 癖づけ
4.7.3 他人のことを考える
4.7.4 規格や文法を過信しない
4.7.5 ANSI規格
5 デバッグ
5.1 デバッグコード
5.1.1 abort()、assert()の利用
5.1.2 syslog()
5.1.3 ログの出力
5.1.4 チェックコード
5.1.5 デバッグレベル
5.2 エラー処理
5.2.1 エラー処理は関数の末尾にまとめる
5.2.2 関数は処理の成功/失敗を戻り値にして返す
5.3 関数ラッパ
5.3.1 簡単な関数ラッパの実装
5.3.2 動的ライブラリによる関数ラッパの実装
6 開発の例
6.1 プログラムを書く目的
6.2 仕様書の作成
6.2.1 機能設計
6.2.2 機能仕様書の作成
6.2.3 レビュー
6.3 コーディング
6.3.1 詳細設計
6.3.2 コーディング
6.3.3 レビュー
6.4 テスト
6.4.1 テスト仕様書の作成
6.4.2 テスト項目
6.5 全体テスト、リリース、保守、完了

Eclipse with CDT

2005年09月24日 | Eclipse
■Eclipse with CDT
http://www.lares.dti.ne.jp/~sakaki/eclipse/EclipseFirst.html

■http://www.eclipse.org/cdt/

CDT Runtime Feature
CDT SDK Feature
CDT Testing Feature

■Eclipse Platformを使用したC/C++ 開発
http://www-6.ibm.com/jp/developerworks/opensource/030620/j_os-ecc.html

■MinGW - Minimalist GNU for Windows
http://www.mingw.org/


C言語プログラミングレッスン

2005年09月24日 | C / C++

http://www.hyuki.com/lc/

第0章 C言語とは
第1章 表示
第2章 計算をやってみよう
第3章 変数物語
第4章 if文   「もしもの国のアリス」
第5章 switch文
第6章 for文  「らせん階段を昇る法」
第7章 while文 「EOFまで繰り返せ」
第8章 関数の作り方
第9章 配列   「団地住まいの変数たち」
第10章 構造体  「リュックサックにオニギリつめて」
第11章 ポインタ
第12章 ファイル操作



makefile bcc32

2005年09月23日 | C / C++

VectorSampleMain.cpp、Employee.cpp、Employee.h
の 3 つのファイルから VectorSampleMain.exe を作る例です。

シンプル版
---
CC = bcc32

VectorSampleMain.exe : VectorSampleMain.obj Employee.obj
$(CC) VectorSampleMain.obj Employee.obj

VectorSampleMain.obj : VectorSampleMain.cpp
$(CC) -c VectorSampleMain.cpp

Employee.obj : Employee.cpp
$(CC) -c Employee.cpp

Employee.cpp : Employee.h

clean :
rm VectorSampleMain.exe *.obj
---

汎用版
---
.SUFFIXES: .cpp .obj

CC = bcc32
CFLAGS =
LDFLAGS =
INCLUDES =
LIBS =
TARGET = VectorSampleMain.exe
OBJS = VectorSampleMain.obj Employee.obj

$(TARGET) : $(OBJS)
$(CC) $(OBJS) $(LIBS)

.cpp.obj:
$(CC) -c $(CFLAGS) $(INCLUDES) $<

Employee.cpp : Employee.h

clean :
rm $(TARGET) *.obj
---

参考
Make と Makefile の説明
http://www.unixuser.org/~euske/doc/makefile/




独習C 第3版

2005年09月18日 | C / C++
独習C 第3版

http://www.seshop.com/detail.asp?pid=3151


  著: Herbert Schildt
訳: 株式会社トップスタジオ
監修: 柏原正三


  商品番号:102960
添付:CD-ROM 1点
ISBN:4798102962
サイズ:B5変
ページ:528
販売価格:\3,360(本体\3,200 消費税5%)
発売日:2002/09/18
出版社:株式会社翔泳社
原出版社:McGraw-Hill Osborne Media
原著タイトル:Teach Yourself C, Third Edition

第1章 Cの基礎

1.1 Cプログラムの構成要素
1.2 プログラムの作成とコンパイル
1.3 変数の宣言と値の代入
1.4 プログラムの数値を入力する方法
1.5 算術式の計算
1.6 プログラムのコメント
1.7 ユーザー定義の関数
1.8 関数の返す値
1.9 関数の引数
1.10 覚えておきたいキーワード
第1章の理解度チェック

第2章 制御文-その1

前章の理解度チェック
2.1 if文
2.2 else文
2.3 コードブロックの作成
2.4 forループ
2.5 インクリメント演算子とデクリメント演算子
2.6 printf()とエスケープ文字
2.7 関係演算子と論理演算子
第2章の理解度チェック

第3章 制御文-その2

前章の理解度チェック
3.1 プログラムに文字を入力する方法
3.2 if文のネスト
3.3 さまざまなforループ
3.4 whileループ
3.5 doループ
3.6 ループのネスト
3.7 break文とループの脱出
3.8 continue文
3.9 switch文による多分岐選択
3.10 goto文
第3章の理解度チェック
総合理解度チェック

第4章 データ型、変数、式の詳細

前章の理解度チェック
4.1 データ型修飾子
4.2 変数の宣言場所の違い
4.3 定数の使い方
4.4 変数の初期化
4.5 式内部での型変換
4.6 代入文での型変換
4.7 型キャスト
第4章の理解度チェック
総合理解度チェック

第5章 配列と文字列

前章の理解度チェック
5.1 1次元配列の宣言
5.2 文字列の取り扱い
5.3 多次元配列の作成
5.4 配列の初期化
5.5 文字列の配列
第5章の理解度チェック
総合理解度チェック

第6章 ポインタ

前章の理解度チェック
6.1 ポインタの基礎
6.2 ポインタ式の制限
6.3 配列とポインタ
6.4 文字列定数とポインタ
6.5 ポインタ配列
6.6 多重間接参照
6.7 仮引数としてのポインタ
第6章の理解度チェック
総合理解度チェック

第7章 関数

前章の理解度チェック
7.1 関数プロトタイプ
7.2 再帰
7.3 引数の値渡しと参照渡し
7.4 main()の引数
7.5 旧方式と新方式の仮引数宣言
第7章の理解度チェック
総合理解度チェック

第8章 コンソールI/O

前章の理解度チェック
8.1 #defineプリプロセッサディレクティブ
8.2 文字と文字列の入出力
8.3 非標準のコンソール関数
8.4 gets()関数とputs()関数
8.5 printf()関数
8.6 scanf()関数
第8章の理解度チェック
総合理解度チェック


第9章 ファイル入出力

前章の理解度チェック
9.1 ストリーム
9.2 ファイルシステムの基礎
9.3 feof()とferror()
9.4 高レベルテキスト関数
9.5 バイナリデータの入出力
9.6 ランダムアクセス
9.7 いろいろなファイルシステム関数
9.8 標準ストリーム
第9章の理解度チェック
総合理解度チェック

第10章 構造体と共用体

前章の理解度チェック
10.1 構造体の基礎
10.2 構造体へのポインタ
10.3 構造体のネスト
10.4 ビットフィールド
10.5 共用体
第10章の理解度チェック
総合理解度チェック

第11章 高度なデータ型と演算子

前章の理解度チェック
11.1 記憶クラス指定子
11.2 型修飾子
11.3 列挙型
11.4 typedef
11.5 ビットごとの演算子
11.6 シフト演算子
11.7 条件演算子(?)
11.8 代入演算子の応用
11.9 カンマ演算子
11.10 優先順位
第11章の理解度チェック
総合理解度チェック

第12章 Cのプリプロセッサとその他の高度なトピック

前章の理解度チェック
12.1 #defineと#include
12.2 条件付コンパイル
12.3 #error、#undef、#line、#pragma
12.4 Cの組み込みマクロ
12.5 #演算子と##演算子
12.6 関数ポインタ
12.7 動的なメモリ割り当て
第12章の理解度チェック
総合理解度チェック

付録A 主要な標準ライブラリ関数

A.1 文字列と文字を操作する関数
A.2 数学関数
A.3 時間と日付の関数
A.4 動的メモリ割り当て関数
A.5 その他の関数


ラショナル統一プロセス入門 第2版

2005年09月08日 | オブジェクト指向
ラショナル統一プロセス入門 第2版
http://www.pearsoned.co.jp/washo/object/wa_obj35-j.html
P・クルーシュテン 著、日本ラショナルソフトウェア株式会社 訳、藤井 拓 監訳
第I部 プロセス

第1章 ソフトウェア開発の最善の実践原則
第2章 ラショナル統一プロセス
第3章 静的な構造:プロセスの表現
第4章 動的構造:反復型開発
第5章 アーキテクチャ中心のプロセス
第6章 ユースケース駆動プロセス

第II部 プロセスのワークフロー

第7章 プロジェクト管理ワークフロー
第8章 ビジネスモデリングワークフロー
第9章 要求ワークフロー
第10章 分析/設計ワークフロー
第11章 実装ワークフロー
第12章 テストワークフロー
第13章 構成および変更管理ワークフロー
第14章 環境ワークフロー
第15章 導入ワークフロー
第16章 典型的な反復計画
第17章 ラショナル統一プロセスのカスタマイズと実装
付録A ワーカーのまとめ
付録B 成果物のまとめ

2001年3月発行/293ページ/B5変形/本体価格: 3,200円+税

【出版元】ピアソン・エデュケーション ISBNコード:4-89471-342-X


-------------------

ラショナル統一プロセス
ソフトウェア開発のベストプラクティス
http://www.unisys.co.jp/tec_info/tr68/6809.pdf




MinGW と MSYS

2005年09月05日 | C / C++
MinGW Home
http://www.mingw.org/

■ MinGW

無償の Windows版 GNU C++ コンパイラーです。


■ MSYS

Windows に UNIX 風の環境を作ります。Cygwin とはまた違ったファイル管理を持ちます。


■ MSYS インストール

つぎのような入力を促されます。

C:msys1.0postinstall>PATH ..bin;C:WINNTsystem32;C:WINNT;C:WINNTSystem32
... (略) ...
am FilesTeraPad;C:j2sdk1.4.1_01bin;C:borlandbcc55Bin;C:MinGWbin;

C:msys1.0postinstall>..binsh.exe pi.sh

This is a post install process that will try to normalize between
your MinGW install if any as well as your previous MSYS installs
if any. I don't have any traps as aborts will not hurt anything.
Do you wish to continue with the post install? [yn ] y

Do you have MinGW installed? [yn ] y

Please answer the following in the form of c:/foo/bar.
Where is your MinGW installation? c:/MinGW

Creating /etc/fstab with mingw mount bindings.
Normalizing your MSYS environment.

You have script /bin/awk
You have script /bin/cmd
You have script /bin/echo
You have script /bin/egrep
You have script /bin/ex
You have script /bin/fgrep
You have script /bin/printf
You have script /bin/pwd
You have script /bin/rvi
You have script /bin/rview
You have script /bin/rvim
You have script /bin/vi
You have script /bin/view

Oh joy, you do not have c:/MinGW/bin/make.exe. Keep it that way.

C:msys1.0postinstall>pause
続行するには何かキーを押してください . . .

独習C++ 第3版

2005年09月04日 | C / C++
http://www.seshop.com/detail.asp?pid=3236

著: Herbert Schildt
訳: 株式会社トップスタジオ
監修: 神林靖


  商品番号:103180
添付:CD-ROM 1点
ISBN:4798103187
サイズ:B5変
ページ:576
販売価格:3,360(本体3,200 消費税5%)
発売日:2002/11/01
出版社:株式会社翔泳社
原出版社:McGraw-Hill Osborne Media
原著タイトル:Teach Yourself C++ Third Edition


第1章 C++の概要

1.1 オブジェクト指向プログラミングとは
1.2 2つのバージョンのC++
1.3 C++のコンソール入出力
1.4 C++のコメント
1.5 クラス
1.6 CとC++の相違点
1.7 関数のオーバーロード
1.8 C++のキーワード
第1章の理解度チェック

第2章 クラスの概要

前章の理解度チェック
2.1 コンストラクタ関数とデストラクタ関数
2.2 仮引数を受け取るコンストラクタ
2.3 継承
2.4 オブジェクトポインタ
2.5 クラス、構造体、共用体の関連
2.6 インライン関数
2.7 自走インライン化
第2章の理解度チェック
総合理解度チェック

第3章 クラスの詳細

前章の理解度チェック
3.1 オブジェクトの代入
3.2 関数へのオブジェクトの引き渡し
3.3 関数からオブジェクトの返し
3.4 フレンド関数の概要
第3章の理解度チェック
総合理解度チェック

第4章 配列、ポインタ、参照

前章の理解度チェック
4.1 オブジェクトの配列
4.2 オブジェクトのポインタ
4.3 thisポインタ
4.4 newとdeleteの使用
4.5 newとdeleteの詳細
4.6 参照
4.7 オブジェクト参照の引き渡し
4.8 参照の返し
4.9 独立参照と制限
第4章の理解度チェック
総合理解度チェック

第5章 関数オーバーロード

前章の理解度チェック
5.1 コンストラクタ関数のオーバーロード
5.2 コピーコンストラクタの作成と使用
5.3 古いoverloadキーワード
5.4 デフォルト引数の使用
5.5 オーバーロードのあいまいさ
5.6 オーバーロード関数のアドレスの探し方
第5章の理解度チェック
総合理解度チェック

第6章 演算子オーバーロード

前章の理解度チェック
6.1 演算子オーバーロードの基本
6.2 2項演算子のオーバーロード
6.3 関係演算子と論理演算子のオーバーロード
6.4 単項演算子のオーバーロード
6.5 フレンド演算子関数の使用
6.6 代入演算子の詳細
6.7 []添え字演算子のオーバーロード
第6章の理解度チェック
総合理解度チェック

第7章 継承

前章の理解度チェック
7.1 基本クラスのアクセス制御
7.2 被保護メンバの使用
7.3 コンストラクタ、デストラクタ、継承
7.4 多重継承
7.5 仮想基本クラス
第7章の理解度チェック
総合理解度チェック

第8章 C++の入出力システム

前章の理解度チェック
8.1 C++の入出力の基礎
8.2 書式設定された入出力
8.3 width()、precision()、fill()の使用
8.4 入出力マニュピレータの使用
8.5 独自挿入子の作成
8.6 抽出子の作成
第8章の理解度チェック
総合理解度チェック

第9章 C++の高度な入出力システム

前章の理解度チェック
9.1 独自マニピレータの作成
9.2 ファイル入出力の基本
9.3 書式不定のバイナリ入出力
9.4 その他の書式不定入出力関数
9.5 ランダムアクセス
9.6 入出力状態のチェック
9.7 カスタマイズされた入出力とファイル
第9章の理解度チェック
総合理解度チェック

第10章 仮想関数

前章の理解度チェック
10.1 派生クラスへのポインタ
10.2 仮想関数の概要
10.3 仮想関数の詳細
10.4 ポリモーフィズムの応用
第10章の理解度チェック
総合理解度チェック

第11章 テンプレートと例外処理

前章の理解度チェック
11.1 汎用関数
11.2 汎用クラス
11.3 例外処理
11.4 例外処理の詳細
11.5 new演算子の例外処理
第11章の理解度チェック
総合理解度チェック

第12章 実行時型情報とキャスト演算子

前章の理解度チェック
12.1 実行時型情報(RTTI)
12.2 dynamic_castの使用方法
12.3 const_cast、reinterpret_cast、static_castの使用方法
第12章の理解度チェック
総合理解度チェック

第13章 名前空間、変換関数、その他の機能

前章の理解度チェック
13.1 名前空間
13.2 変換関数の作成方法
13.3 staticクラスメンバ
13.4 constメンバ関数とmutable
13.5 コンストラクタについてのその他の事項
13.6 リンケージ指定子とasmキーワードの使用方法
13.7 配列ベースの入出力
第13章の理解度チェック
総合理解度チェック

第14章 標準テンプレートライブラリ(STL)

前章の理解度チェック
14.1 標準テンプレートライブラリの概要
14.2 コンテナクラス
14.3 ベクトル
14.4 リスト
14.5 マップ
14.6 アルゴリズム
14.7 stringクラス
第14章の理解度チェック
総合理解度チェック

付録A CとC++の相違点