for(;;)
и while (true)
отличаются тем, что первый является особым случаем , определенным как как бесконечный цикл, в то время как последний является своего рода оскорблением, говорящим "всегда верно". *
Предупреждение появляется, потому что бесконечные циклы, когда они вам не нужны довольно плохие, поэтому предупреждает вас, что у вас может быть один на первом знаке. Но, используя for(;;)
, вы в значительной степени явно сказали «зацикливайтесь на этом навсегда», и не о чем предупреждать.
Я не думаю, что GCC имеет аналогичное предупреждение.