p599〜p629まで

今日からマクロ。C++じゃあんま使わないほうがいいっぽいけどどうなんだろ。まぁ適材適所ですか。Cでもあんまり使ったことなかったからこの際しっかり身につけとこう。
あと今日から引用表記を使うことにした。これで改行位置気にしなくていいぽ。

マクロの基本

・引数を取るマクロの例

 #define HOGE(foo, bar) ((foo) + (bar));

 HOGE(1, 5)みたいにつかう。
・マクロの定義を複数行にわたって記述したい場合は各行の最後に\をつける。
・使いどころは変数や関数などではまとめることができない処理を1つにまとめる時。

やっぱりマクロはできるだけ使わんほうがいいって書いてありました。

マクロの正しい使い方

・複数行に及ぶマクロの場合はブロックで囲んだほうがいい
・マクロ引数や差し込まれるテキスト全体は必ず括弧で囲む
・マクロに差し込むコメントは/**/で括ること推奨
・関数内でマクロを定義した場合必ず#undefを書く

assertマクロ

これ重要。ただ、いまいち使い切れてなかったりする。いかんですね・・・。

・cassertに含まれる。
・NDEBUGマクロがcassertをインクルードする前に定義されてあるとassertマクロが書いてある式は消える。

モードについて

環境ごとにデバックモードやリリースモードの説明が載ってた。あとは環境に依存しない簡単なNDEBUGマクロの定義の仕方とか(簡単なファイルにまとめてそれをincludeするだけだけども)。
Makefileもあんま書いたことないからそのうち勉強しないとなぁ。

まぁ基本マクロは使わない方針ってことで。次は13章じゃ!この章は結構長くかかるかも?