トップ «iPodのDockが欲しい / JBL on stage 最新 Makefile / C++/MFCの勉強にお薦めの本 ..»

PC関係のメモ


図書館で勉強 / IMEツールバーの機能を呼び出すショートカットキー / データ構造 / 撮影会 / gccでC++のコンパイル / NULLを定義しているヘッダ

図書館で勉強

先日書いたとおり、日曜日なので図書館でお勉強開始。

先週と同じ「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」をメインに、近くにあった、「コンピュータ英語活用辞典」をアームレスト代わりに積んでおく。

アルゴリズムとデータ構造 (岩波講座 ソフトウェア科学 3)(石畑 清)

コンピュータ英語活用辞典(三島 浩/相磯 秀夫)

IMEツールバーの機能を呼び出すショートカットキー

Ctrl+F10

すぐ忘れるのでメモ。

http://homepage2.nifty.com/winfaq/c/ntperf.html#1376

データ構造

今日は基本的なデータ構造について勉強。

「岩波講座ソフトウェア科学3 アルゴリズムとデータ構造」で言うと「1.3 基本的データ構造」。

撮影会

昼食ついでにデジカメの撮影会。

公園を散歩しながらマクロモードを使って花などを撮影する。友人に貸りたIXY DIGITAL 600の性能の高さに驚く。

Canon IXY DIGITAL 600で撮影した写真(リサイズのみ)。黄色い花は普通のマクロ、白と紫の花はデジタルマクロを使って撮影。

IXY DIGITAL 600で撮影した写真1IXY DIGITAL 600で撮影した写真2

CONTAX SL300RT*で撮影した写真(リサイズのみ)。どちらもマクロモードを使って撮影。

SL300RT*で撮影した写真1SL300RT*で撮影した写真2

gccでC++のコンパイル

クラスにコンストラクタを実装して

gcc hoge.cpp

としたらエラーが出てコンパイルできない。

hoge.cpp: undefined reference to `vtable for Hoge'

Hogeはクラス名。

下記ページを参考に-lstdc++をつけるとコンパイルできた。

gcc hoge.cpp -lstdc++

標準ライブラリを使ってないのにstdc++が要るって言うのがよくわからないけどそういうことらしい。毎度指定するのは面倒(環境変数で解決出来る気も)だし出力ファイル名も変えたいから、Makefileを覚えて使おうかな。

NULLを定義しているヘッダ

何もインクルードしていないファイルをgccでコンパイルしたら

hoge.cpp:21: error: `NULL' undeclared (first use this function)

恥ずかしながら「NULLって処理系内部で定義されてるんじゃないの?」と思った。

そういえばどこかのヘッダーで

#define NULL 0

って定義してあった気がしなくもない。こういうときC言語をきちんと勉強してないことがばれる。K&Rを再読したほうがいいのかも。

で、どこで定義されてるのか考えてみた。stdio.hだけインクルードするコードでもNULLは使えた記憶があるので、stdio.hだろうか。と一瞬考えたがすぐに、多分stdio.hも他のヘッダーをインクルードしてるんだろうと思い直す。

調べてみたところstddef.hで定義されていることがわかった。大抵他のインクルードファイルから間接的にインクルードされるので、今まで気にしたことがなかった。

http://okuyama.mt.tama.hosei.ac.jp/unix/C/slide50-1.html

NULL とはヘッダファイル stddef.h で定義された定数(マクロ)で,それ自体 NULLポインタ定数です。但し,NULLポインタ定数 NULL を使うには,次のヘッダファイルのいずれかを読み込むことが必要です。

stddef.h,stdio.h,stdlib.h,string.h,time.h,wchar.h
最終更新時刻: 2008年07月16日
コメント(5) [コメントを投稿する]
_ drry (2005-05-09 02:13)

良いですねぇ。最近のデジカメが欲しくなります。

_ _ (2005-05-09 20:45)

> gccでC++のコンパイル<br>g++じゃなくて?

_ hajime (2005-05-10 10:31)

>drry<br>本当です。最近のデジカメ使うと自分って上手いじゃん!と調子に乗ってしまいます。<br><br>>_<br>あんまり深く考えずに、gccにc++のコード入力したらg++呼んでるんでねーの?GCCだし。とか思ってましたけど、調べてみたら違うみたいですね。

_ CEO (2005-05-11 21:44)

カメラはいい!最近特にそう思います。奥が深いし・・・。

_ hajime (2005-05-14 00:01)

デジカメは昔のカメラと違って、いろんな設定を試してすぐにその場で結果を確認できるのがいいですね。