Wat betekent #pragma ooit in C?

Mogelijk duplicaat:
#pragma – helpen begrijpen

Ik heb de pragmavaak gezien, maar altijd in de war, weet iemand wat het doet? Is het alleen Windows?


Antwoord 1, autoriteit 100%

In de C- en C++-programmering
talen, #pragma once is a
niet-standaard maar breed ondersteund
preprocessor-richtlijn ontworpen om
ervoor zorgen dat het huidige bronbestand
slechts één keer opgenomen in een single
compilatie. Dus, #pragma dient ooit
hetzelfde doel als #include bewakers,
maar met een aantal voordelen,
inclusief: minder code, naam vermijden
botsingen en verbeterde compileersnelheid.

Zie het Wikipedia-artikel voor meer informatie.


Antwoord 2, autoriteit 90%

Het wordt gebruikt om de volgende preprocessorcode te vervangen:

#ifndef _MYHEADER_H_
#define _MYHEADER_H_
...
#endif

Een goede conventie is om beide toe te voegen om oudere compilers te ondersteunen (wat zeldzaam is):

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

Dus als #pragma een keer faalt, werkt de oude methode nog steeds.


Antwoord 3, autoriteit 10%

Over het algemeen zijn de #pragma-richtlijnen bedoeld voor het implementeren van compiler-specifieke preprocessor-instructies. Ze zijn niet gestandaardiseerd, dus u moet er niet te veel op vertrouwen.

In dit geval is het doel van #pragma onceom de include guards die je gebruikt in header-bestanden te vervangen om meervoudige opname te voorkomen. Het werkt iets sneller op de compilers die het ondersteunen, dus het kan de compilatietijd verminderen bij grote projecten met veel headerbestanden die vaak #include‘ed zijn.


Antwoord 4

pragma is een richtlijn aan de preprocessor. Het wordt meestal gebruikt om extra controle te bieden tijdens de compilatie. Neem bijvoorbeeld niet dezelfde headerbestandscode op. Er zijn veel verschillende richtlijnen. Het antwoord hangt af van wat er op het pragmawoord volgt.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

thirteen + 18 =

Other episodes