2009-12-01

oldnewthing: WIN32_LEAN_AND_MEANの由来

The Old New Thing : Where did WIN32_LEAN_AND_MEAN come from?

asdfはWIN32_LEAN_AND_MEANの由来が疑問であるようだ。

WIN32_LEAN_AND_MEANシンボルは、Windows 95時代に、windows.hをincludeした際、多くのヘッダファイルを省略する目的で導入された。windows.hを覗けば、どのファイルが省略されるのかが分かる。

このシンボルは16-bit Windowsから32-bit Windowsへの移行の一環として、追加されたものである。16bitのwindows.hは、多くのヘッダファイルをincludeしておらず、WIN32_LEAN_AND_MEANを定義することによって、16bit Windowsの、Windows プログラムを書くに当たって最小限のヘッダという思想を、取り戻すことができるようにするものであった。これは、ヘッダファイルを細かく自分で管理したいプログラマに歓迎されたし、また、利点もあった。というのも、このシンボルが作られた当時は、プリコンパイルドヘッダーファイルは、一般的ではなかった。私の記憶する限りでは、50MHzの80486に8MBのメモリでは、WIN32_LEAN_AND_MEANを使うことによって、Cファイル一個あたり、三秒のコンパイル時間の短縮に繋がったのである。あるプロジェクトで20個のCファイルを使っていたならば、実に一分間もの時間の節約になる。

ムーアの法則とプリコンパイルドヘッダーとが、WIN32_LEAN_AND_MEANを、ほとんど無用にしてしまった。もはや、時間の短縮にはならぬ。しかしある時代では、確かに役立っていたのだ。

No comments: