Google
 

martes, diciembre 11, 2007

C++ / #pragma once

Todos los que hayan programado en C/C++ conocerán de sobra los include guards (no sé como lo llaman en español):
#ifdef CABECERA_H
#define CABECERA_H

// TODO código

#endif
Pero hay otro método:
#pragma once

// TODO código
El segundo método ofrece algunas grandes ventajas:
  1. Menos código a escribir (una línea en lugar de tres).
  2. Nos evitamos posibles colisiones con los nombres de las macros (CABECERA_H podría estar usándose en otro archivo).
  3. 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.
Como desventaja diría que no forma parte del estandard pero hoy en día todos los compiladores lo soportan.


Fuente: http://www.answers.com/topic/pragma-once