que programa medidas lenguaje general estructura descargar c gcc c99 c89 ansi-c

programa - c99 shell



¿Cuál es la diferencia entre C, C99, ANSI C y GNU C? (5)

Empecé a programar práctica en codechef y me confundí con la diferencia entre C y C99. ¿Qué significa C aquí? ¿Es C89? Verifique los idiomas en la parte inferior de esta presentación . Contiene C y C99.

Encontré en Internet algo llamado GNU C. ¿Hay una C diferente para los sistemas Linux / Unix? ¿Son compatibles con los estándares C de ANSI? También he leído en algunos lugares "C99 estricto". ¿Que es esto?

¿Hay otros estándares diferentes de C en uso? ¿Hay algo llamado C 4.3.2 o es la versión de gcc en uso actual?

EDITAR:

This , This , This ayudó. Buscaré más y editaré las cosas que quedan sin respuesta.

No soy un novato en programación. Sé lo que es el lenguaje C Sé que existen los diferentes estándares C de ANSI como C89, C99 y C11.


Además de Lundin Answer

Esto es lo que Dennis Richie tiene que Say cuando se le preguntó

"¿Por qué K & R no esperó a la norma final ANSI aprobada antes de escribir K & R 2nd edition?"

¿Por qué K & R no esperó a la norma final ANSI aprobada antes de escribir K & R 2nd edition? Parece que este libro será el estándar correcto durante unos meses antes de que sea superado por el estándar ANSI final. Sé que es probable que se produzcan pocos cambios importantes en esta etapa tardía, pero ¿por qué no esperar unos meses y asegurarse de obtener el 100% correcto, en lugar de tener que escribir casi de inmediato una tercera edición o quedar obsoleto?

Pensamos que sería bueno celebrar el décimo aniversario de la primera edición. Más en serio, comenzamos a trabajar el verano pasado porque teníamos el tiempo y la inclinación, y parecía que X3J11 se acercaba a su fin. En diciembre y enero, cuando estábamos terminando, consideramos si la posibilidad de cambios importantes justificaba postergar la entrega, y (después de discutir el asunto con el editor) decidieron que no valía la pena esperar. PH lo quería, y tanto Brian como yo queríamos que fuera de nuestras agendas.

Incluso si hay cambios en el estándar, es difícil imaginar que sean lo suficientemente extensos como para garantizar una nueva edición. (Incluso estuvimos preparados para hacer frente de alguna manera con noalias, si hubiera durado). Estamos listos para hacer los cambios necesarios en una futura impresión, pero hay motivos para esperar que sean menores. Los miembros de X3J11 están ansiosos por terminar sin sorprender a la gente, también; muchos de ellos trabajan para compañías que están preparando compiladores ANSI, después de todo.

Dennis Ritchie


DEBO responder con respecto a ANSI C. Aunque ANSI no ha hecho nada con él, los compiladores todavía están integrados en él. El compilador PIC XC16 por ejemplo: "El compilador es un compilador completamente validado que cumple con el estándar ANSI C tal como lo define la especificación ANSI (ANSI x3.159-1989) y se describe en Kernighan y The C Programming Language de Ritchie (segunda edición). ... "No toda la programación es para computadoras" grandes "como PC. Escribir un compilador para los costos de su dispositivo y validar los costos de tiempo y $. ANSI C está vivo y vivo en sus dispositivos integrados / en tiempo real.


Esta pregunta no se buscó exhaustivamente en la red para la respuesta, de todos modos, puede ver esto:

  1. C es un lenguaje de programación de propósito general desarrollado inicialmente por Dennis Ritchie entre 1969 y 1973 en AT & T Bell Labs.
  2. C99 es un estándar del lenguaje C publicado por ISO y adoptado por ANSI en alrededor de 1999.
  3. GNU C es solo una extensión de c89, mientras que algunas características de c99 también se agregan, pero en su totalidad es diferente del estándar c99, así que cuando compilamos en gcc tenemos que ingresar -std=c99 que ya se mencionó en las otras respuestas.
  4. ANSI C es una serie sucesiva de estándares lanzados por ANSI.

  • ANSI C: el primer lenguaje C fue estandarizado por el organismo llamado ANSI en 1989, por eso se llama c89.

  • C99:
    con la demanda de los requisitos de los desarrolladores, en 1999-2000 se han incluido palabras clave y características adicionales o adicionales en C99 (por ejemplo: en línea, booleana ... Se han agregado funciones de biblioteca artística en coma flotante)

  • GNU C: GNU es un sistema operativo tipo Unix (www.gnu.org) y en algún lugar el proyecto de GNU necesita un lenguaje de programación C basado en el estándar ANSI C. GNU usa el compilador GCC (Colección compiladora GNU) para compilar el código. Tiene una función de biblioteca C que define llamadas al sistema tales como malloc, calloc, exit ... etc.

ANSI C es un estándar que está siendo utilizado o evaluado por los otros estándares.


  • Todo antes de la estandarización generalmente se llama "K & R C", después del famoso libro , con Dennis Ritchie, el inventor del lenguaje C, como uno de los autores. Este fue "el lenguaje C" de 1972-1989.

  • El primer estándar C fue lanzado 1989 a nivel nacional en EE. UU., Por su instituto nacional estándar ANSI. Esta versión se llama C89 o ANSI-C. Desde 1989 hasta 1990, este fue "el lenguaje C".

  • Un año después, el estándar estadounidense fue aceptado internacionalmente y publicado por ISO (ISO 9899: 1990). Esta versión se llama C90. Técnicamente, es el mismo estándar que C89 / ANSI-C. Formalmente, reemplazó C89 / ANSI-C, haciéndolos obsoletos. Desde 1990 hasta 1999, C90 fue "el lenguaje C".

    Tenga en cuenta que desde 1989, ANSI no ha tenido nada que ver con el lenguaje C. Los programadores que todavía hablan de "ANSI C" generalmente no tienen ni idea de lo que significa. ISO "posee" el lenguaje C, a través del estándar ISO 9899.

  • En 1999, se revisó el estándar C, cambiaron muchas cosas (ISO 9899: 1999). Esta versión del estándar se llama C99. Desde 1999 hasta 2011, este fue "el lenguaje C".

  • En 2011, el estándar C se modificó nuevamente (ISO 9899: 2011). Esta versión se llama C11. Actualmente es la definición de "el lenguaje C".

"C99 estricto" probablemente se refiere a una configuración del compilador obligando a un compilador a seguir el estándar por la letra. Hay un término que se ajusta a la implementación en el estándar C. Esencialmente significa: "este compilador realmente implementa el lenguaje C correctamente". Los programas que implementan correctamente el lenguaje C se conocen formalmente como programas estrictamente conformes .

"GNU C" puede significar dos cosas. O el compilador de C que viene como parte de la Colección de compiladores de GNU (GCC). O puede significar la configuración predeterminada no estándar que utiliza el compilador C de GCC. Si compila con gcc program.c entonces no compila de acuerdo con el estándar C, sino con una configuración GNU no estándar, que puede denominarse "GNU C". Por ejemplo, todo el kernel de Linux está hecho en GNU C no estándar y no en C.

Si desea compilar sus programas de acuerdo con el estándar C, debe escribir gcc -std=c99 -pedantic-errors . Reemplace c99 con c11 si su versión de GCC lo admite.