В C есть ли гарантия с кодом до неопределенного поведения?
В следующем коде гарантируется, что «0 \ n» будет напечатано?
#include <stdio.h>
int main(void)
{
int c = 0;
printf("%d\n",c);
printf("%d,%d\n",++c,++c);
}
В более общем случае, если программа имеет неопределенное поведение, становится ли вся программа неопределенной или только с точки последовательности, с которой начинается проблемный код?
Пожалуйста, обратите внимание: яне спрашивая, что компилятор делает со вторым printf. Я спрашиваю, гарантированно ли произойдет первый printf.
Я знаю, что неопределенное поведение может взорвать ваш компьютер, сбой вашей программы или еще что-то.