2012-04-05 11 views
14

Por ejemplo, ¿qué versión de gcc admite c99?¿Qué versión de gcc y g ++ admite qué estándar de c y C++?

¿Hay alguna tabla o gráfico para mostrar el estado admitido estándar de gcc y g ++?

¿Cómo evolucionaron gcc y g ++?

Gracias ~

+0

Hay una reciente pregunta relacionada con el C++ parte de su pregunta [aquí] (http://stackoverflow.com/questions/10026150/what-c- norme-im-currently-using /) – juanchopanza

Respuesta

16

Muy estrictamente hablando, GCC solo es compatible con C89, C++ 98 y C++ 03, todo desde 4.3.

El soporte para C99 todavía está incompleto hasta el momento, pero GG ha admitido un subconjunto muy grande y utilizable durante mucho tiempo.

Experiemental C++ 11 de apoyo se inició con 4.3 y ha ido mejorando desde entonces; ya es muy útil en 4.6.x, y se ha agregado mucho más en 4.7 (aunque 4.7.0 es un poco inestable).

También hay algo de compatibilidad con C11, pero muchos de los cambios para C11 requieren una biblioteca de C adecuadamente nueva, que no es tan fácilmente reemplazable.

9

Usted recibe el apoyo más amplio de normas con la última versión - 4.7 en este momento. El estándar elegido se puede configurar con el interruptor -std. Here is an article that describes the available values. Algunas características adicionales/comportamiento diferente también se pueden habilitar con -fpermissive.

+0

Puedo ver muchos gcc y g ++ estándar admitidos en la página web que proporciona. ¿Y dónde está la información sobre qué versión de gcc y g ++ admite qué estándares? Gracias ~ – sam

+0

No creo que haya tal información disponible, y si existiera, obtendría principalmente los mismos valores posibles para '-std'. Piensa que la última adición fue "C++ 0x" en 4.3. Los estándares y su implementación en GCC son dos cosas diferentes. ¿Cómo llamas "apoyo"? Incluso con la última versión, GCC aún agregó correcciones a C++ 03 y ese estándar tiene casi 10 años (para ser pedante, la mayoría era igual a C++ 98, por lo que es incluso más antiguo). –

+0

Gracias ~ Puedo entender la diferencia. ¿Y cuál es el caso de usar -permisivo? – sam

0

Los detalles de apoyo se pueden encontrar en el sitio web de GNU. Recuerdo que hay docenas de estándares que gcc no se aplica para el c99. De todos modos, para tener compatibilidad con c99 en gcc solo necesita simple --std = c99 parámetro

Cuestiones relacionadas