Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Es necesaria la librería time.h para usar NULL?

Estas en el tema de Es necesaria la librería time.h para usar NULL? en el foro de C/C++ en Foros del Web. Pues eso. ¿Es necesario declarar la librería time.h para poder utilizar NULL? Lo uso para inicializar un generador random: sran(time(NULL)). Supongo que sí, pero no ...
  #1 (permalink)  
Antiguo 21/08/2013, 04:07
 
Fecha de Ingreso: agosto-2013
Mensajes: 2
Antigüedad: 10 años, 8 meses
Puntos: 0
Es necesaria la librería time.h para usar NULL?

Pues eso. ¿Es necesario declarar la librería time.h para poder utilizar NULL?

Lo uso para inicializar un generador random:

sran(time(NULL)).

Supongo que sí, pero no recuerdo haberlo puesto en todos los programas en los que he usado NULL para inicializar.

Gracias.
  #2 (permalink)  
Antiguo 21/08/2013, 04:13
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Es necesaria la librería time.h para usar NULL?

Para usar NULL no es necesario ningún tipo de librería, ya está predefinido, pero utilizas la función time, para la cual si es necesario usar time.h.

Saludos.
  #3 (permalink)  
Antiguo 21/08/2013, 19:47
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Es necesaria la librería time.h para usar NULL?

Es NULL es un macro y esta definido en stddef.h y stddef esta a su vez lo pueden incluir diferentes librerías.

A diferencia de otros lenguajes NULL no es una palabra reservada, ni esta predefinido.

Como prueba puedes ver que este programa no compila.

Código C:
Ver original
  1. int main()
  2. {
  3.     int *x = NULL;
  4.     return 0;
  5. }
  #4 (permalink)  
Antiguo 21/08/2013, 19:51
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Es necesaria la librería time.h para usar NULL?

Cita:
Iniciado por razpeitia Ver Mensaje
Es NULL es un macro y esta definido en stddef.h y stddef esta a su vez lo pueden incluir diferentes librerías.

A diferencia de otros lenguajes NULL no es una palabra reservada, ni esta predefinido.

Como prueba puedes ver que este programa no compila.

Código C:
Ver original
  1. int main()
  2. {
  3.     int *x = NULL;
  4.     return 0;
  5. }
Pensé que sí, en:
Código C:
Ver original
  1. gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-3)

Compilar eso con gcc -Wall file.c -o file no marca ningún error, más bien, su compilación es satisfactoria, de ahí, mi respuesta, ha de ser un bug entonces en el GCC de CentOS.
  #5 (permalink)  
Antiguo 21/08/2013, 22:48
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Es necesaria la librería time.h para usar NULL?

Probablemente le estas poniendo algun include antes del main. Mira que en el código yo no puse ningún include.

Mismo código, pero mi compilador marca lo siguiente
Cita:
$ gcc -Wall main.c -o main
main.c: In function ‘main’:
main.c:3:14: error: ‘NULL’ undeclared (first use in this function)
main.c:3:14: note: each undeclared identifier is reported only once for each function it appears in
main.c:3:10: warning: unused variable ‘x’ [-Wunused-variable]
Cita:
gcc version 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)
  #6 (permalink)  
Antiguo 22/08/2013, 02:48
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: Es necesaria la librería time.h para usar NULL?

No está ningún include antes del main, está solo el código sin ninguna librería, que hecho curioso...
  #7 (permalink)  
Antiguo 22/08/2013, 02:52
 
Fecha de Ingreso: julio-2012
Mensajes: 375
Antigüedad: 11 años, 9 meses
Puntos: 28
Respuesta: Es necesaria la librería time.h para usar NULL?

NULL equivale a poner 0, asi que da igual *_*

Etiquetas: programa, usar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.