2011-04-25 32 views

Respuesta

0

http://gcc.gnu.org/onlinedocs/cpp/Pragmas.html

- También, es pragma, no pragama, y una búsqueda de Pragma desbordamiento de pila te habría ayudado

cf. Use of #pragma in C y muchos otros ...

+1

¿Para qué es la palabra pragma? – wireshark

+0

Trate de leer esto: http://stackoverflow.com/questions/3791259/where-does-the-word-pragma-come-from – Ptival

+0

Esto en realidad no responde a la pregunta. El asker quiere saber qué significa '#pragma una vez', no' # pragma' en general. –

15

En el C y C++ programación idiomas, #pragma once es una directiva de preprocesador no estándar, pero un amplio apoyo diseñado para causa el archivo fuente de corriente para ser incluido solo una vez en una única compilación . Por lo tanto, #pragma una vez sirve el mismo propósito que #include guardias, pero con varias ventajas, incluyendo: menos código, evitando el nombre choques, y velocidad de compilación mejorada.

Consulte el artículo Wikipedia para obtener más detalles.

+0

¿Qué significa 'pragma'? Nunca lo recuerdo ... – wireshark

+0

@wireshark es una palabra griega, "πράγμα" y viene de pragmático como se dijo [aquí] (http://stackoverflow.com/questions/3791259/where-does-the-word-pragma-come-from) .. ..Porque el significado exacto en griego es "cosa", pero si te enfocas en su origen, puedes decir que significa "acción". – gsamaras

2

En general, los #pragma directivas están destinadas a la aplicación de las instrucciones del preprocesador específicas del compilador. No están estandarizados, por lo que no debe confiar en ellos demasiado.

En este caso, el propósito #pragma once 's es reemplazar la incluyen dispositivos de seguridad que se utilizan en los archivos de cabecera para evitar la inclusión múltiple. Funciona un poco más rápido en los compiladores que lo admiten, por lo que puede reducir el tiempo de compilación en proyectos grandes con muchos archivos de encabezado que son #include 'ed con frecuencia.

8

Se utiliza para reemplazar el siguiente código de preprocesador:

#ifndef _MYHEADER_H_ 
#define _MYHEADER_H_ 
... 
#endif 

Una buena convención es la adición tanto para apoyar los compiladores de legado (que es aunque rara):

#pragma once 
#ifndef _MYHEADER_H_ 
#define _MYHEADER_H_ 
... 
#endif 

Así que si #pragma vez falla el viejo método todavía funcionará.

0

Pragma es una directiva para el preprocesador. Por lo general, se utiliza para proporcionar un control adicional durante la compilación. Por ejemplo, no incluya el mismo código de archivo de encabezado. Hay muchas directivas diferentes. La respuesta depende de lo que sigue a la palabra pragma.