#ifdef CABECERA_HPero hay otro método:
#define CABECERA_H
// TODO código
#endif
#pragma onceEl segundo método ofrece algunas grandes ventajas:
// TODO código
- Menos código a escribir (una línea en lugar de tres).
- Nos evitamos posibles colisiones con los nombres de las macros (CABECERA_H podría estar usándose en otro archivo).
- Ayuda a mejorar la velocidad de compilación ya que si se declara el #pragma once el compilador usa el propio archivo para averiguar si ya ha sido declarado o no, con lo que se evita el tener que pasar el código por el preprocesador.
Fuente: http://www.answers.com/topic/pragma-once
1 comentario:
coincido total y plenamente con usted caballero! si bien "#pragma once" no es estandar, no conozco a un solo compilador de C/C++ que no lo soporte.
otra cosa a mencionar es que, si bien ambos metodos mejoran el tiempo de compilacion, en un proyecto pequeño no se observa diferencia alguna entre uno y otro. y otra cosa mas: hasta donde tengo entendido, el compilador GCC inserta en los archivos de cabecera ambas lineas, a modo de "double check". en definitiva, los ventajas de un metodo por sobre otro no son algo demasiado plausible, al menos en proyectos de pequeña/mediana envergadura.
un saludo y felicitaciones por la nota!
Publicar un comentario