|
901 / 478 / 93
Регистрация: 10.06.2014
Сообщений: 2,700
|
||||||
Использование неинициализированных переменных18.08.2017, 12:52. Показов 4916. Ответов 41
Метки нет (Все метки)
Есть простой код
Но на stackoverflow разные мнения по поводу корректности использования не инициализированных переменных. Вот мне интересно следующее: 1. Какие могут быть проблемы? Ведь int по умолчанию имеет значение 0, и если не ошибаюсь это требование стандарта. 2. Почему компиляторы выдают warning при использовании неинициализированных переменных? Просто что бы напомнить об этом если вдруг мы случайно забудем инициализировать переменную перед тем как используем её? 3. 2017 студия вообще отказывается компилировать код в котором используются не инициализированные переменные. Это фича такая и как то отключается? Типа "не компилить если есть хотя бы 1 warning"? Прошу разъяснить тех кто знает Добавлено через 1 минуту Особенно интересует ответ на вопрос #1
0
|
||||||
| 18.08.2017, 12:52 | |
|
Ответы с готовыми решениями:
41
Предупреждения компилятора об использовании неинициализированных переменных
использование переменных |
|
Вездепух
13241 / 6873 / 1827
Регистрация: 18.10.2014
Сообщений: 17,420
|
|||||||
| 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 из класса Использование переменных из другой структуры Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки.
Добавлено:
- Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|