• Jueves 28 de Marzo de 2024, 10:05

Autor Tema:  ¿Qué es el estándar en C?  (Leído 3349 veces)

@aps

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
¿Qué es el estándar en C?
« en: Miércoles 26 de Junio de 2013, 06:17 »
0
Parece tonta la pregunta pero no lo tengo claro, ¿qué se considera compilar un código por medio del estándar? ¿que el código sólamente incluya las librerías que se encuentran aquí? ¿cómo sé cuándo compilo rigiéndome por el estandar? ¿cuando le agrego al compilador la opción -ansi?

y otra duda aparte, cuando escribo un código sin incluir ninguna libería, ¿por qué compila? ¿por la rtl? y si es así, ¿cómo sé cuáles funciones tiene la rtl y cuáles no? uso mingw en windows.

ah! también, ¿es posible tener un ejecutable q no cargue kernel32 ni ntdll ?

Gracias.

saludos.

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:¿Qué es el estándar en C?
« Respuesta #1 en: Miércoles 26 de Junio de 2013, 19:11 »
0
Buenas @aps bienvenido al foro.

¿qué se considera compilar un código por medio del estándar? ¿que el código sólamente incluya las librerías que se encuentran aquí?
R.- Si
Citar
¿cómo sé cuándo compilo rigiéndome por el estandar? ¿cuando le agrego al compilador la opción -ansi?
R.- En realidad usar la opcion -ansi solo garantiza que estas usando el estandar c90, en caso de que escribas codigo para compiladores antiguos. Mas infromacion sobre -ansi aqui:
http://gcc.gnu.org/onlinedocs/gcc/C-Dialect-Options.html#C-Dialect-Options

Citar
y otra duda aparte, cuando escribo un código sin incluir ninguna libería, ¿por qué compila? ¿por la rtl? y si es así, ¿cómo sé cuáles funciones tiene la rtl y cuáles no?
R.- Esta pregunta no la comprendi bien, cual seria el codigo que dices que compilas sin ninguna libreria?

Citar
ah! también, ¿es posible tener un ejecutable q no cargue kernel32 ni ntdll ?
En windows, no, porque esas dll, comtinenen las funciones de acceso a bajo nivel de windows.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

@aps

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:¿Qué es el estándar en C?
« Respuesta #2 en: Jueves 27 de Junio de 2013, 00:47 »
0
Cuando compilo usando la opción -ansi este código funciona d lo más normal:
Código: C
  1. #define PI 3.14
  2.  
  3. int main (void)
  4. {
  5.         printf("hi, %f\r\n", PI);
  6.         getch();
  7.         return 0;
  8. }

Como getch no forma parte del estándar ni del c90 ni del c99 no entiendo porqué compila.
Quizá pueda llegar a entender lo d printf pues creo q está en la rtl, pero ¿getch? además, si se diera el caso d q fuera así, ¿cómo puedo estar seguro de cuáles funciones están en la rtl q cargó mi programa?

Al lo d arriba funcionar cuando no debería me pregunto, ¿cómo sé cuándo mi compilador compila por el estándar?

Gracias por responder,

saludos.

su -

  • Moderador
  • ******
  • Mensajes: 2349
    • Ver Perfil
Re:¿Qué es el estándar en C?
« Respuesta #3 en: Miércoles 3 de Julio de 2013, 23:52 »
0
Cuando compilo usando la opción -ansi este código funciona d lo más normal:
Código: C
  1. #define PI 3.14
  2.  
  3. int main (void)
  4. {
  5.         printf("hi, %f\r\n", PI);
  6.         getch();
  7.         return 0;
  8. }

Como getch no forma parte del estándar ni del c90 ni del c99 no entiendo porqué compila.
Quizá pueda llegar a entender lo d printf pues creo q está en la rtl, pero ¿getch? además, si se diera el caso d q fuera así, ¿cómo puedo estar seguro de cuáles funciones están en la rtl q cargó mi programa?

Al lo d arriba funcionar cuando no debería me pregunto, ¿cómo sé cuándo mi compilador compila por el estándar?

Gracias por responder,

saludos.

Un poco tarde, pero mas vale tarde que nunca :p

El codigo que pones ahi realmente no esta completo. Le falta el #include <stdio.h> que una libreria estandar y define las funciones printf, getchar entre otras.

Ahora getch no es estandar, por lo que me hace pensar que estas usando un IDE que hace muchas cosas sin preguntar.
*******PELIGRO LEE ESTO!!*******

There is no place like 127.0.0.1

Conecto luego existo, no conecto luego insisto.