На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > Не могу разобраться с Atmel Studio , Start Debugging & Break начинается с последей строки
      Приветсвую!

      Скачал и установил Atmel Studio.
      Начал смотреть обучающие видео.
      Вот в этом видео описывается кнопка "Start Debugging and Break".
      В видео программа останавливается на первой строке исполняемого кода, и далее можно пошагово пройти весь код.

      Я для проверки написал вот такой код:
      ExpandedWrap disabled
        int main(void)
        {
            int i;
            i++;
        }


      Результат - полные непонятки:
      - по кнопке "Start Debugging and Break" программа останавливается на закрывающейся скобке: }
      именно на закрывающей }, хотя по описанию должна на окрывающей {.
      - в "error list" 1 warning: 'i' is used uninitialized in this function [-Wuninitialized]

      Что всё это значит? :wacko:
        Цитата SV() @
        по кнопке "Start Debugging and Break" программа останавливается на закрывающейся скобке: }
        именно на закрывающей }, хотя по описанию должна на окрывающей {.
        Тело функции видимо пусто, поэтому без разницы на какой именно строчке останавливаться.

        Цитата SV() @
        в "error list" 1 warning: 'i' is used uninitialized in this function [-Wuninitialized]
        Как это ни парадоксально звучит, но текст ошибки прямо говорит о проблеме. Ты пытаешься использовать неинициализированную переменную.
          Цитата trainer @
          Как это ни парадоксально звучит, но текст ошибки прямо говорит о проблеме. Ты пытаешься использовать неинициализированную переменную.
          Исправил код:
          ExpandedWrap disabled
            int main(void)
                  {
                      int i=0;
                      i++;
                  }

          Warning исчез.
          Но "Start Debugging and Break" всё равно на }. :wall:
            Компилятор наверное выкинул из main ни на что не влияющие строчки, тело функции оказалось пусто. попробуй что-нибудь такое:
            ExpandedWrap disabled
              volatile int i = 0;
               
              int main() {
                 i++;
              }
            Сообщение отредактировано: trainer -
              Да, так работает :blink:
              Никогда, никогда я не смогу понять смысла C. :wall:

              ИЧСХ:
              ExpandedWrap disabled
                volatile int i;
                      
                      int main() {
                         i++;
                      }
              Тоже работает. И warning'а нет.
              И i нормально меняется, сначала 0, потом 1...

              Ушёл думать. :wacko:

              Новый прикол. На ноуте Studio не реагирует на подключённую клаву в английской раскладке:
              Стрелочки вверх, вниз - пожалуйста! Enter, del, прочее - не вопрос.
              Русские буквы - легко.
              Переключаемся на английский - нет реакции на буквы. :wall:
              Пишу в блокноте, и ctrl-c ctrl-v в студию. :bad:
                Цитата SV() @
                Никогда, никогда я не смогу понять смысла C.
                В этом никакого "смысла C" нет. Это оптимизация. wiki: удаление мёртвого кода
                Цитата SV() @
                Тоже работает. И warning'а нет.
                Чего б не работать? Неинициализированные глобальные переменные инициализируются нулем. Оптимизировать работу с volatile-переменными компилятор не имеет права.

                Цитата SV() @
                Ушёл думать.
                Лучше книжку по C почитай.
                Сообщение отредактировано: trainer -
                  Потихонечку подходим к holy wars. <_<
                  Уверен, такие специалисты как Вы, прекрасно понимают в чем здесь проблема...

                  Спасибо большое за точные ответы, с Вашей помощью вопрос поставленный в теме решен. :good:

                  Цитата trainer @
                  Лучше книжку по C почитай.

                  Я читал вот это.
                  Нету там тех нюансов которые мы здесь выяснили.

                  Знаете хорошую книгу - порекомендуйте.

                  Хотя я в книгах что-то разочаровался. Нет без них конечно никуда, но только если надо поднять весь уровень целиком и времени вагон. А если конкретная проблема - тут как карта ляжет.
                  Например в нашем случае вероятность того, что в выбранной книге будет упомянуто удаление мёртвого кода, ближе к нулю. А вот что чтение её займёт месяц - ближе к 1. Итогом будет нерешенный вопрос, потраченное время и больший негатив к программированию.
                  А форум решил вопрос за 2 дня. Выбор очевиден.

                  З.Ы. Раз уж описал проблему с клавиатурой здесь, может есть мысли что это такое? Почему студия не реагирует печатает символы при включённой английской раскладке?
                    Цитата SV() @
                    Потихонечку подходим к holy wars.
                    С таким подходом можно запросто вместо Holy wars в Корзину угодить.

                    Добавлено
                    Кстати, к тому что ты читаешь, надо относиться с осторожностью. На первой же странице меня насторожило, что язык C++ оказывается был реализован только фирмой Borland, компилятор сразу получил версию 3.0 и после версии 3.1 больше не развивался.

                    Должен сказать, что изложение там довольно сумбурное, при этом много ненужных подробностей, не относящихся собственно к языку, и потому уводящих в сторону от его изучения.
                    Странно, что ты вообще смог после этого чтива что-то написать.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0289 ]   [ 16 queries used ]   [ Generated: 26.04.24, 14:15 GMT ]