No llamaré a estos estilos, sino a variantes de idiomas (o dialectos).
Un estilo de codificación es un conjunto de convenciones opcionales que pueden no seguirse. Por ejemplo, algunos estilos de codificación solicitan que los nombres de las macros sean mayúsculas (pero su código se compilará si no sigue esa regla).
Su "2 nd estilo" se llama Kernighan & Ritchie C. Es el antiguo C definido a finales de los años 70 (en la primera edición de un libro famoso en C por Kernighan y Ritchie, las ediciones subsiguientes se han ajustado a los estándares C posteriores). Es un lenguaje obsoleto.
Los compiladores actuales a menudo siguen la norma ISO C99 (publicada en 1999), que ha sido reemplazada por la nueva norma C11 (publicada en 2011).
Los compiladores de GCC aceptan el estándar C99 con el argumento del programa -std=c99
. Recomiendo compilar con gcc -Wall -std=c99
; Recientes compiladores de GCC (es decir, 4.6 y 4.7) aceptan -std=c11
IIRC para la nueva norma C11.
No codifique hoy en el antiguo dialecto de Kernighan y Ritchie C: es obsoleto y cada vez es menos compatible con compiladores. IMHO C99 es un buen estándar a seguir si es prudente. Y aproveche algunas de sus características (en particular, la capacidad de mezclar declaraciones y declaraciones dentro de un bloque; C dialectos más antiguos necesarios para poner todas las declaraciones al inicio de un bloque).
La norma ha progresado, en particular porque agrega características y es más precisa w.r.t. a los sistemas y las prácticas actuales (por ejemplo, procesadores de múltiples núcleos)
Y IIRC esto ya está desfasada y en mi versión de "The C Programming Language, Second Edition, ANSI C" de 1990. –
ya está obsoleta, agregándola. – phoxis