Артем :)
"while(x)" то же что "while(x!=0)"
в Сях любое ненулевое == "истина", а ноль равен "ложно".
Выполняется пока это х ненулевое. как только внутри цикла переменная х обнулится или в условии макрос х выдаст ноль -цикл завершится
бесконечный цикл
Почитай определение циклов в C.
Зацикленность