Аз написах следния код и го изпълних на IDB на CodeBlocks:
main()
{
unsigned char num=1;
unsigned char i=0;
for(i=0;i<255;i++)
{
printf("%dn",num>>i);
}
}
изход: 1,0,0, .. (31 0 "s), 1,0 .. (31 0" s)
Всяка стойност за num генерира периодична последователност.
Знам, че преместването отвъд границата (mem размер за num) е недефинирано поведение, но защо е периодично?
Периодичната последователност се генерира дори ако сте напуснали смяна
Отговори:
4 за отговор № 1Това е позволено да бъде периодично, тъй като това е възможно проявление на неопределено поведение.
Не разчитайте на това.