Каково поведение ненициализированной переменной, используемой в качестве собственного инициализатора?C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Каково поведение ненициализированной переменной, используемой в качестве собственного инициализатора?

Сообщение Anonymous »

Я только сейчас заметил, что следующий код может быть скомпилирован с Clang/GCC/Clang ++/G ++, используя C99 , C11 , c ++ 11 Стандарты.

int main(void) {
int i = i;
}
< /code>

и даже с -wall -wextra < /code>, ни один из компиляторов даже не сообщает о предупреждениях.why.c:2:13: warning: variable 'i' is uninitialized when used within its own initialization [-Wuninitialized]
int i = i + 1;
~ ^
1 warning generated.
< /code>

Мои вопросы: < /p>
  • Почему это даже разрешено компиляторами? В частности, каково это поведение? Ub или реализация зависит от?


Подробнее здесь: https://stackoverflow.com/questions/542 ... nitializer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»