Интуитивно думалось, что должно быть - variable already defined, но оказывается(проверил и судя теперь по другим компиляторам)это не так.
Ну, должен - так должен.
P.S. Хотя мне как-то трудно с этим смириться.
Ни первого, ни второго комментария я так и не понял!
Ну ничего..., ну ладно. Все равно благодарю за участие.
функция - есть самостоятельная единица, снаружи видится как черный ящик, так? все переменные внутри функции не видны другим, но функция может использовать глобальные переменные.
старт - это тоже функция просто стандартная.... вот и все
таким образом переменные обьявленные на глобальном уровне видны еще и в ините и деините, тоже стандартных функциях, а те что обьявлены в старте нет.
Ни первого, ни второго комментария я так и не понял!
Ну ничего..., ну ладно. Все равно благодарю за участие.
Локальные переменные, объявленные внутри функции, перекрывают глобальные переменные, которые объявлены вне функции. Если переменная не найдена среди локальных функций, то она ищется на глобальном уровне.
Ни первого, ни второго комментария я так и не понял!
Ну ничего..., ну ладно. Все равно благодарю за участие.
Глобальные переменные видны всей программе. Но если в какой-то функции объявлены переменные с такими же иненами, то они "заслоняют" глобальные и используются как обычные локальные переменные, т.е. в пределах функции не влияя никак на глобальные.
Вот пример(скрипт), посмотрите:
int a=1,b=2; //+------------------------------------------------------------------+ //| script program start function | //+------------------------------------------------------------------+ int start() { //---- int a=3,b=4; Comment("Start: a=",a,"; b=",b); Sleep(5000); //---- return(0); } //+------------------------------------------------------------------+ void deinit() { Comment("Deinit: a=",a,"; b=",b); Sleep(2000); Comment(""); }P.S. Ну вот Rosh, как всегда опередил :)
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
На скорость не влияет. Но решил на всякий пожарный обратить ваше внимание.
Объявляем одни и теже переменные не глобальном уровне и внутри старта и компелим без ошибок:
0 ошибок, 0 предупреждений ?