LOWORD() の関連質問なんですが、

DWORD a;
WORD b = ( WORD ) a ;
WORD c = ( WORD )( a & 0xFFFF ) ;

LOWORDの define は c ですね。
で、何でわざわざ c のような変換をするのか分かりません。
bより c のような変換の方が安全(?)とかそういうのがあるんでしょか?