デバイスドライバなどを書いているときに、便利なマクロがいろいろあるがこのマクロがどのようになっているか知りたいとき、マクロが書かれているソースコードを見るのもいいが他にも方法がある。EmacsからC言語プリプロセッサを呼出しマクロ展開したコードを出力することができる。

Emacsでマクロ展開を行うときは展開したい文字列をリージョンで選択しC-c C-eまたはM-x c-macro-expandを行うことにより、新しいウィンドウにマクロ展開された文字列が出力される。

マクロ展開するソースコードはヘッダファイルを見て展開を行うがデバイスドライバなどを書いているときは/usr/includeからヘッダファイルを読み込むのではなく、/usr/src/linux/includeのヘッダファイルを読み込んでほしい。このような場合は.emacsなどに以下の一文を追加すればうまくいく。

(setq c-macro-cppflags "-I/usr/src/linux/include")

実行すると以下の様になる。