関数冒頭で変数宣言してないからだな。defineのコメントアウトで
エラーのあるなしが変わるのはコンパイル前処理で#ifdefが無くなるから。