Нельзя. Так как по свитчу можно попасть на более низкий кейс, в котором будет обращение к этой переменной. Используйте составной оператор {}
int p = 0; switch (p) { case 0: { MqlDateTime mdt; TimeCurrent(mdt); } break; }
Точно также через { } и в C++ работает определение локальных переменных внутри блока case.
Спасибо за объяснение! Буду знать
Однако, в С++ сия конструкция допустима и без использования { }, если ниже нет case/default.
То есть, аналог приведённого выше примера будет работать на C++ в отличие от MQL5.
То есть, аналог приведённого выше примера будет работать на C++ в отличие от MQL5.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Наткнулся вот на такую штуку:
'MqlDateTime' - initialization a variable is skipped by 'case' label
'mdt' - undeclared identifier TestPassStr.mq5
'mdt' - parameter conversion is not allowed