В C есть ли гарантия с кодом до неопределенного поведения?

В следующем коде гарантировано, что будет напечатано "0 \ n"?

#include <stdio.h>
int main(void)
{
    int c = 0;
    printf("%d\n",c);

    printf("%d,%d\n",++c,++c);
}

В более общем плане, если программа имеет неопределенное поведение, становится ли неопределенным вся программа или только с точки последовательности, с которой начинается проблемный код?

Обратите внимание: я не спрашиваю, что компилятор делает со вторым printf. Я спрашиваю, гарантированно ли произойдет первый printf.

Я знаю, что неопределенное поведение способно взорвать ваш компьютер, вывести из строя вашу программу и т. Д.

11
задан Jacob 23 October 2010 в 06:27
поделиться