Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.133.12.172] |
|
Страницы: (6) « Первая ... 4 5 [6] все ( Перейти к последнему сообщению ) |
Сообщ.
#76
,
|
|
|
Цитата Wound @ На что валидируется? На то что если он не нулевой, то вызвать член через указатель? А расскажи ка, когда он у тебя будет нулевым? В каком месте он у тебя нулевой? Там мусор будет содержатся, и соответственно твоя валидация сработает не так, как ты ожидаешь. Ты прав. Ты прав. |
Сообщ.
#77
,
|
|
|
В дебаге там сразу 0 на стеке, в релизе не 0.
|
Сообщ.
#78
,
|
|
|
Цитата Qraizer @ В дебаге там сразу 0 на стеке Ну это я уж догадался. Вопрос в другом. Почему в остальных (с++11, с++14) в дебаге не нуль, а мне только"повезло" с с++17 и только со студийным компилером? Вот тут мистика. |
Сообщ.
#79
,
|
|
|
Ну мож в новых студиях стали очищать стэк. Заботятся.
|
Сообщ.
#80
,
|
|
|
Цитата JoeUser @ Потому что стандарт не требует инициировать переменные на стеке нулём. Почему в остальных (с++11, с++14) в дебаге не нуль |
Сообщ.
#81
,
|
|
|
Та не, просто повезло. Хотя в данном случае, скорее не повезло. 100пудово в прологе main() стоит что-то типа sub esp, XX, где XX суммарный размер локальных переменных, и нули весьма глубоко внутри стека на входе в main() никак от самой main() не зависят.
|
Сообщ.
#82
,
|
|
|
Вообще достаточно странно, потому что студия на моей памяти в дебаге всегда переменные инициализировала чем-то вроде 0xCCCCCCCC.
|
Сообщ.
#83
,
|
|
|
Цитата Qraizer @ Вообще достаточно странно Да нет, я уже спрашивал. Но мне в тупую ответили: Цитата amk @ Потому что стандарт не требует инициировать переменные на стеке нулём. amk, извини, но это СТАНДАРТНЫЙ ОТВЕТ от Копетана Очевидность! Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному? Я же привел таблицу выше! |
Сообщ.
#84
,
|
|
|
Цитата JoeUser @ Но почему одна и та же студия при указании разных стандартов ведет себя по разному? Потому что создатель компилятора поспорил со своим коллегой, что это изменение кодревью пройдёт Чисто теоретически ты какой ответ ожидаешь услышать? Такая инициализация это деталь реализации, и она может быть любой, не противоречащей стандарту, что мы и наблюдаем. |
Сообщ.
#85
,
|
|
|
Цитата JoeUser @ Поиграйся оптимизацией, скорее всего и в дебаге, и в релизе сможешь получить оба эффекта. Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному? |