Я видел несколько очень странных циклов for при чтении кода других людей. Я пытаюсь найти полное синтаксическое объяснение цикла for в C, но это очень сложно, потому что слово "for" появляется в несвязанных предложениях, что делает поиск практически невозможным для Google.
Этот вопрос пришел мне на ум после прочтения этой темы, из-за чего мне снова стало любопытно.
for здесь:
for(p=0;p+=(a&1)*b,a!=1;a>>=1,b<<=1);
В среднем состоянии есть запятая, разделяющая две части кода, что делает эта запятая? Запятая с правой стороны я понимаю, поскольку она делает как a>>=1, так и b<<=1.
Но в рамках условия выхода из цикла, что происходит? Выходит ли он, когда p==0, когда a==1 или когда оба происходят?
Было бы здорово, если бы кто-нибудь мог помочь мне понять это и, возможно, указать мне в сторону полного описания синтаксиса цикла for.