C ++ Switch не будет компилироваться с внешне определенной переменной, используемой как регистр

Я пишу на C ++ с использованием компилятора MinGW GNU, и проблема возникает, когда я пытаюсь использовать внешне целочисленную переменную как регистр в выражении switch. Я получаю следующую ошибку компилятора: "метка case не сводится к целочисленной константе ".

Потому что я'Я определил целочисленную переменную как extern. Я считаю, что она должна компилироваться. Кто-нибудь знает, в чем может быть проблема?

Ниже приведен пример:

test.cpp

#include 
#include "x_def.h"

int main()
{
   std::cout < "Main Entered" < std::endl;


   switch(0)
   {
      case test_int:
         std::cout < "Case X" < std::endl;
         break;
      default:
         std::cout < "Case Default" < std::endl;
         break;
   }

   return 0;
}

Ответы на вопрос(3)

Ваш ответ на вопрос