|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||
Использование неинициализированных переменных18.08.2017, 12:52. Показов 4711. Ответов 41
Метки нет (Все метки)
Есть простой код
Но на stackoverflow разные мнения по поводу корректности использования не инициализированных переменных. Вот мне интересно следующее: 1. Какие могут быть проблемы? Ведь int по умолчанию имеет значение 0, и если не ошибаюсь это требование стандарта. 2. Почему компиляторы выдают warning при использовании неинициализированных переменных? Просто что бы напомнить об этом если вдруг мы случайно забудем инициализировать переменную перед тем как используем её? 3. 2017 студия вообще отказывается компилировать код в котором используются не инициализированные переменные. Это фича такая и как то отключается? Типа "не компилить если есть хотя бы 1 warning"? Прошу разъяснить тех кто знает Добавлено через 1 минуту Особенно интересует ответ на вопрос #1
0
|
||||||
| 18.08.2017, 12:52 | |
|
Ответы с готовыми решениями:
41
Предупреждения компилятора об использовании неинициализированных переменных
использование переменных |
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,306
|
|||||||
| 13.06.2018, 00:20 | |||||||
|
В стандарте С С89/90 говорилось, что любое чтение неинициализированного значения является неопределенным поведением. В стандарте С99 это правило сочли слишком жестким и ослабили - чтение неинициализированного значения дает либо неспецифицированное значение, либо trap representation (т.е. неопределенное поведение только в последнем случае). Но этот вариант не очень хорошо согласуется с особенностями архитектуры Itanium. Поэтому в C11 тему развили дальше: в дополнение к сказанному в С99 добавили т.наз. "Itanium clause": чтение неинициализированой локальной переменной, которая теоретически может быть объявлена с классом памяти register - это всегда неопределенное поведение.Это, кстати, привело к таким необычным последствиям, как
1
|
|||||||
|
285 / 176 / 21
Регистрация: 16.02.2018
Сообщений: 666
|
||
| 23.08.2018, 05:43 | ||
|
Например для int, "indeterminate value" это не то же самое, что "какое-то значение из диапазона от INT_MIN до INT_MAX", как это часто понимают. Кликните здесь для просмотра всего текста
И не то же самое, что "какое-то значение из диапазона от INT_MIN до INT_MAX, которое может меняться со временем", если кто-то это хотел написать.
Какое-то значение из диапазона — это какое-то значение из дапазона, а не "intederminate"-значение. Объект с неопределённым (indeterminate) значением может побитово совпадать с объектом с определённым значением, но при этом значения у этих объектов всё равно разные. Так что, как бы это абсурдно ни звучало, но для фундаментальных типов значение неинициализированных переменных определено: indeterminate. А не "не определено" в смысле "unspecified" или "not defined" и т.п. Так-то!
2
|
||
| 23.08.2018, 05:43 | |
|
Использование файловых переменных Использование динамических переменных Использование динамических переменных Использование переменных main из класса Использование переменных из другой структуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|