2010-01-31 16 views

Respuesta

17

Esto es por la definición de la declaración for en el lenguaje C. 6.8.5.3/2 "La declaración for":

Se pueden omitir tanto la cláusula-1 como la expresión-3. Una expresión-2 omitida se reemplaza por una constante distinta de cero.

+0

Perfecto. Gracias Michael! : D – iokevins

+0

Aquí hay un enlace al borrador actual de la especificación C99: http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf. La especificación for-loop se encuentra en la página 136. – iokevins

5

El lenguaje C no tiene "expresión vacía". Si falta alguna expresión en la instrucción for, sintácticamente significa que toda la expresión es omitida, no que esté allí, sino vacía.

Un for bucle con una segunda expresión omitida se repite para siempre porque la especificación de la declaración for lo dice. Es decir. es una característica dedicada específica para for, no es algo más genérico.

Additionaly (un nitpick terminológico) solo la segunda expresión es realmente una condición . El primero y el tercero no son realmente "condiciones".

+0

Gracias por las aclaraciones de AndreyT! :) – iokevins

Cuestiones relacionadas