C++ kodu Visual C++ 9 ile "uyarı düzeyi 4" ile derlediğimde:"While (true)" için bir derleyici uyarısı verme ve "for (;;)" için bir tane vermeme noktası nedir?
while(true) {
//loop body with break on certain condition
}
ve aşağıdakiler:
for(; true;) {
//same loop body
}
her ikisi de C4127: conditional expression is constant
uyarısını tetikler ancak
for(; ;) {
//same loop body
}
, uyarı vermeden derler.
Neden bu fark, özellikle ikinci ve üçüncü varyant arasında?
üncü ifadede herhangi bir koşullu ifade olmadığından ... ikinci ve üçüncü sırada bulunurken .... derleyici, koşullu ifade konusunda herhangi bir uyarı olmadan nasıl uyarı üretebilir? –
Genellikle, özellikle destek kullanırken C4127'yi #pragma warning ile devre dışı bırakıyorum. –
İlgili: http://stackoverflow.com/questions/224421/constant-value-in-conditional-expression – CesarB