p91〜p153まで

do-while

正直1回も使ったことない。とりあえず書式メモ。

do{
// do something...
}while(if...); // ここにセミコロンが入る。

ビットとバイト

これまたいろんなところで言われてるけど、sizeof演算子を変数に対して使う場合、()は不要。一応メモ。
signed int や unsigned int とかでも long int や short int のようにintを省略して signed, unsignedとかけるらしい。これは知らなかった。
数値の後ろに型修飾子をつけることでコードに書かれた数値の型を決めることができる。floatのfはよく使ってたけど、l(long)、u(unsigned)もつかえるみたい。

コラム

この項はついでにC++ Coding Standardsの91と合わせて読んでもいいかも?
基本的にはC/C++の型のサイズは環境ごとに自由に決めていいらしい。型の範囲の上限加減は決められているらしい。char型も8bit以上と決められているだけで厳密には決められていない。このchar型のサイズがその環境での「バイト」になるらしい。確実に8bitの組であることを表現したい場合には「オクテット(octet)」と呼ぶ。ちなみに9bitは「ノネット(nonet)」。

文字コード

''で文字を囲って得られる値の型はC++だとcharになるようだ。Cだとint。

Unicode

Unicode文字コードは21bit。よく使う文字のサイズは小さく、あまり使わない文字はサイズが大きくなっている。UTF-8はchar型で扱え、UTF-16, UTF-32はwchar_t型を使うことができる場合がある。Unicodeは文字の最初にBOM(Byte Order Mark)をつけることでUTF-8/16/32を区別する。BOMは3byteだったはず。一応日本語ばかりの場合は、日本語が基本的に3byteで表現されるので、UTF-16のほうがよくなるみたい。
ちなみにワイド文字を扱いたい場合は文字列の先頭にLをつける。L'T', L"Hello"みたいな。それぞれの型はwchar_tとconst wchar_t[6]になる。これが不便らしいので、次期C++ではこれらを直接取り扱えるような型を導入するらしい。

これ以降

なんかC++標準ライブラリの説明っぽい部分だったんでざっくりと読みますた。ライブラリ周りはリファレンス見て使って覚えていけばいいやーってことで。
演算誤差についての記述もあったけど、このあたりも把握してるんでOK。ちゃんと3Dグラフィックス扱うときはfloatを使うことがあるって書いてあるのに萌えた。ちなみにゲームはほとんどfloat。doubleだと遅すぎるっす。

オーバーロード

オーバーライドとオーバーロード、いつもどっちがどっち?ってなる。最近は上書きだからライドって感じに覚えてきた。

とりあえず3章は終了。この章はそこまで収穫なかったなー。やっぱ収穫ありそうなのはクラスに入ってからかな。