Dev - C++ - #pragma once

   
Vista:
Imágen de perfil de Martin Larrosa

#pragma once

Publicado por Martin Larrosa martnahuel95@gmail.com (19 intervenciones) el 20/05/2016 05:00:08
¿Para qué sirve esta función?
Estuve trabajando en la UNI con un proyecto en el cual en un archivo .h(header file) en el que tengo definida una estructura con los nombres de mis funciones y sus argumentos de entrada mi profesor indicó que escribamos eso al inicio del código...
Leí en internet información al respecto y no encontré nada convincente.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

#pragma once

Publicado por agustin (308 intervenciones) el 21/05/2016 00:17:21
https://es.m.wikipedia.org/wiki/Pragma_once
No es estándar y se puede conseguir lo mismo con directivas tipo:
1
2
3
4
#ifndef PEPE_H
#define PEPE_H
//Aquí tu código que no deseas que se copie más de una vez
#endif
Esto es algo que trae cualquier librería que se precie.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Martin Larrosa

#pragma once

Publicado por Martin Larrosa martnahuel95@gmail.com (19 intervenciones) el 22/05/2016 17:14:22
Todos los archivos (.h) deben ser definidos o con (#pragma once) o de la forma que me has mostrado anteriormente?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

#pragma once

Publicado por agustin (308 intervenciones) el 23/05/2016 10:31:02
Debería ya que si no es asi y añades un archivo de cabecera dos veces en el mismo proyecto se produciría código duplicado y en algunos casos un error al compilar.
Imagina que tienes tres archivos, a.cpp, b.cpp, main.cpp. Ahora imagina que en a.h tienes declarada una clase y en b.h incluyes el archivo de cabecera a.h. Luego en main.cpp incluye los archivos de cabecera de a.h y b.h. Eso daría un error al compilar porque estarías declarando dos veces la misma clase. Si usas directivas eso no pasará porque solo se creará una vez.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Martin Larrosa

#pragma once

Publicado por Martin Larrosa martnahuel95@gmail.com (19 intervenciones) el 24/05/2016 14:46:51
Excelentísima respuesta, Muchísimas gracias Agustín!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar