このサイトでダウンロードできる「libjpeg」のソースコードを見て、

cjpegとdjpeg - JPEGと、他の一般的な画像フォーマットとの変換を行う。

と記述されていたので、cjpeg.cのソースを見ました。
すると、1~22行あたりまでは利用の規約などが記載されており、24行目あたりからコードが書かれていると思います。

#include "cdjpeg.h"     /* cjpeg / djpegアプリケーションの共通デッキ */
#include "jversion.h"       /* for version message */

#ifdef USE_CCOMMAND     /* Macintosh用のコマンドラインリーダー */
# ifdef __MWERKS__
#  include <SIOUX.h>              /* Metrowerksはこれを必要とします */
#  include <console.h>      /* ... この */
# endif
# ifdef THINK_C
#  include <console.h>      /* ここでそれを宣言してください */
# endif
#endif

質問
1. include "cdjpeg.h" これは、cdjpeg.hのファイルを読み込んでという意味ですよね?
2. #ifdef USE_CCOMMAND は使い方を調べたんですが、#ifdef <識別子名> <処理> となっていて、<識別子名>が定義済みなら<処理>を実行するというコードですよね?
USE_CCOMMAND は、読み込んだファイルで定義されている場合も実行するんですか?
3. #include "cdjpeg.h"先のcdjpeg.hcdjpeg.hと定義されているんですが、#defineって、#define A Bという記述でコードのAをすべてBと置き換えて実行しなさいという意味ですよね?今回の場合、Bにあたる部分がないのですが、どういう解釈をすればよいですか?