Hatena::ブログ(Diary)

Alone Like a Rhinoceros Horn

2011-10-10

unite-outline の近況: C のマクロがどう展開されるかを表示するようにした

C のマクロが展開されてどうなるかを => の後に表示するようにしてみた。

Before:

f:id:h1mesuke:20111010163037p:image

 ↓

After:

f:id:h1mesuke:20111010163030p:image

上の画像より空間の利用効率が上がって情報量が増えたのがわかると思う。

do { ... } while(0) のような複数行に渡るものは最初の数行分しか表示できないけど、アウトラインってことならこんなもんで十分だろう。詳細はプレビューするなりジャンプするなりすれば確認できるわけだし。

2010-07-28

ポインタ変数に対するconst宣言

前々から、

  1. 定数データへのポインタ と
  2. 定数ポインタ の違いについて、

const修飾子をどこに付けたらどっちの意味だっけ? と頭がこんがらがることが多かったので、

などを参照しつつ、確認のためのコードを書いてみた。

const の意味的に重要なのは const* の前か後ろ、どちらにあるかということで

  1. * の前 → 定数データへのポインタ
  2. * の後 → 定数ポインタ

という対応になっている。

標準ライブラリ関数プロトタイプなどを見れば、参照先データの変更が禁止されるべき局面で前者の書き方がされていることを多数発見できるので、この対応関係を忘れたとしてもそこから導くことができるだろう。