2015-12-24 3 views
1

J'ai observé dans certains des en-têtes l'utilisation de pragma. Mais vraiment pas sûr de son utilisation. Aide dans ce vraiment appréciéPréprocesseur #pragma lié en C et C++

#pragma once 
#pragma warning (disable : 4251) 
#pragma warning (pop) 
#pragma warning (push) 
#pragma comment(lib, "dbghelp") 
#pragma warn -ccc 
#pragma warn -aus 
#pragma warn -csu 
#pragma warn -spa 
pragma pack(push,8) 
__cplusplus 

Merci d'avance.

+0

Voir ce qui suit pour l'utilisation générale de '# pragma' http://stackoverflow.com/questions/232785/use-of-pragma-in-c – Toby

+0

L'utilisation spécifique dépend de votre compilateur. Pour la GCC, la documentation est disponible sur https://gcc.gnu.org/onlinedocs/cpp/Pragmas.html – Toby

+0

Ou ici pour MSVC: https://msdn.microsoft.com/en-us/library/d9x1s805.aspx – Toby

Répondre

-1

Le préprocesseur #pragma est essentiellement utilisé pour changer l'ordre d'exécution du programme qui est un programme c/C++ normal qui commence à partir de main() et qui sort de main() mais #pragma permet de le changer.

la #pragma se répartit comme suit: -

#pragma démarrage < nom de la fonction sans parenthèses>: -

change la fonction de démarrage qui signifie que cette fonction se déroulera avant l'exécution de la principale()

#include... 
void fun1(); 
void fun2(); 
#pragma startup fun1 
#pragma exit fun2 
int main() 
{ 
... 
} 

#pra gma sortie nom de la fonction < sans crochets>: -

modifie la fonction de sortie qui signifie que cette fonction se déroulera après l'exécution de principal()

#include... 
void fun1(); 
void fun2(); 
#pragma startup fun1 
#pragma exit fun2 
int main() 
{ 
... 
} 

#pragma avertir < type de warning>: -

cette directive indique au compilateur si nous voulons ou non supprimer un avertissement spécifique.

#include... 
    #pragma warn -rvl // return value 
    #pragma warn -par // parameter not used 
    #pragma warn -rch // unreachable code 

void fun(int n) 
    { 
    ... 
    //Do something 
    } 

int main() 
{ 
... 
// Do something 
fun(); // parameter not used warning suppressed. 
} 

Il y a beaucoup d'autres directives pragma et vous pouvez facilement les trouver juste en faisant une analyse approfondie et une recherche appropriée sur Google.

+0

Votez et acceptez la réponse si vous êtes satisfait. – NeoR

+0

Cela ne répond pas à la question du tout! L'OP a posé une question sur '#pragma once',' #pragma warning', '#pragma comment',' #pragma warn' et 'pragma pack', mais vous avez décrit' #pragma startup', '#pragma exit' et' #pragma warn' – Toby

+0

@Toby il ne fait que poser des questions sur pragma et a copié le contenu d'un fichier d'en-tête "J'ai observé dans certains en-têtes l'utilisation de pragma mais je n'en suis pas vraiment sûr" – NeoR