Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[13.58.182.39] |
|
Сообщ.
#1
,
|
|
|
Приветсвую!
Скачал и установил Atmel Studio. Начал смотреть обучающие видео. Вот в этом видео описывается кнопка "Start Debugging and Break". В видео программа останавливается на первой строке исполняемого кода, и далее можно пошагово пройти весь код. Я для проверки написал вот такой код: int main(void) { int i; i++; } Результат - полные непонятки: - по кнопке "Start Debugging and Break" программа останавливается на закрывающейся скобке: } именно на закрывающей }, хотя по описанию должна на окрывающей {. - в "error list" 1 warning: 'i' is used uninitialized in this function [-Wuninitialized] Что всё это значит? |
Сообщ.
#2
,
|
|
|
Цитата SV() @ Тело функции видимо пусто, поэтому без разницы на какой именно строчке останавливаться. по кнопке "Start Debugging and Break" программа останавливается на закрывающейся скобке: } именно на закрывающей }, хотя по описанию должна на окрывающей {. Цитата SV() @ Как это ни парадоксально звучит, но текст ошибки прямо говорит о проблеме. Ты пытаешься использовать неинициализированную переменную. в "error list" 1 warning: 'i' is used uninitialized in this function [-Wuninitialized] |
Сообщ.
#3
,
|
|
|
Цитата trainer @ Исправил код:Как это ни парадоксально звучит, но текст ошибки прямо говорит о проблеме. Ты пытаешься использовать неинициализированную переменную. int main(void) { int i=0; i++; } Warning исчез. Но "Start Debugging and Break" всё равно на }. |
Сообщ.
#4
,
|
|
|
Компилятор наверное выкинул из main ни на что не влияющие строчки, тело функции оказалось пусто. попробуй что-нибудь такое:
volatile int i = 0; int main() { i++; } |
Сообщ.
#5
,
|
|
|
Да, так работает
Никогда, никогда я не смогу понять смысла C. ИЧСХ: volatile int i; int main() { i++; } И i нормально меняется, сначала 0, потом 1... Ушёл думать. Новый прикол. На ноуте Studio не реагирует на подключённую клаву в английской раскладке: Стрелочки вверх, вниз - пожалуйста! Enter, del, прочее - не вопрос. Русские буквы - легко. Переключаемся на английский - нет реакции на буквы. Пишу в блокноте, и ctrl-c ctrl-v в студию. |
Сообщ.
#6
,
|
|
|
Цитата SV() @ В этом никакого "смысла C" нет. Это оптимизация. wiki: удаление мёртвого кодаНикогда, никогда я не смогу понять смысла C. Цитата SV() @ Чего б не работать? Неинициализированные глобальные переменные инициализируются нулем. Оптимизировать работу с volatile-переменными компилятор не имеет права.Тоже работает. И warning'а нет. Цитата SV() @ Лучше книжку по C почитай. Ушёл думать. |
Сообщ.
#7
,
|
|
|
Потихонечку подходим к holy wars.
Уверен, такие специалисты как Вы, прекрасно понимают в чем здесь проблема... Спасибо большое за точные ответы, с Вашей помощью вопрос поставленный в теме решен. Цитата trainer @ Лучше книжку по C почитай. Я читал вот это. Нету там тех нюансов которые мы здесь выяснили. Знаете хорошую книгу - порекомендуйте. Хотя я в книгах что-то разочаровался. Нет без них конечно никуда, но только если надо поднять весь уровень целиком и времени вагон. А если конкретная проблема - тут как карта ляжет. Например в нашем случае вероятность того, что в выбранной книге будет упомянуто удаление мёртвого кода, ближе к нулю. А вот что чтение её займёт месяц - ближе к 1. Итогом будет нерешенный вопрос, потраченное время и больший негатив к программированию. А форум решил вопрос за 2 дня. Выбор очевиден. З.Ы. Раз уж описал проблему с клавиатурой здесь, может есть мысли что это такое? Почему студия не реагирует печатает символы при включённой английской раскладке? |
Сообщ.
#8
,
|
|
|
Цитата SV() @ С таким подходом можно запросто вместо Holy wars в Корзину угодить. Потихонечку подходим к holy wars. Добавлено Кстати, к тому что ты читаешь, надо относиться с осторожностью. На первой же странице меня насторожило, что язык C++ оказывается был реализован только фирмой Borland, компилятор сразу получил версию 3.0 и после версии 3.1 больше не развивался. Должен сказать, что изложение там довольно сумбурное, при этом много ненужных подробностей, не относящихся собственно к языку, и потому уводящих в сторону от его изучения. Странно, что ты вообще смог после этого чтива что-то написать. |