Skip to main content

Wat is voorwaardelijke compilatie?

In computerprogrammering beschrijft voorwaardelijke compilatie de mogelijkheid van een softwarecompiler of broncodeprocessor om bepaalde opdrachten of codeblokken op te nemen of te negeren op basis van taalspecifieke instructies die technisch geen deel uitmaken van de kernprogrammeertaalspecificatie.De opdrachten die worden gebruikt om voorwaardelijke compilatie in een programma te activeren, worden vaak pre-processor-richtlijnen genoemd, hoewel ze ook bekend kunnen worden als compilerrichtlijnen, voorwaardelijke opmerkingen of voorwaardelijke definities.Afhankelijk van de gebruikte compiler of taal die wordt gebruikt, kunnen de voorwaardelijke richtlijnen door de gebruiker gedefinieerde variabelen of macro's zijn, of kunnen ze ook systeemvariabelen zijn die zijn ingesteld door de compiler of het besturingssysteem.Voorwaardelijke compilatie wordt vaak gebruikt om een enkele set broncodebestanden te configureren, zodat deze kunnen worden gecompileerd onder verschillende omgevingen of besturingssystemen zonder dat ze bronbestanden moeten ruilen of wijzigen.

De voorwaardelijke definieerDe ene taal naar de andere, maar ze zijn over het algemeen macro's of andere meta-data-uitdrukkingen buiten het bereik van de normale programmavariabelen.In talen zoals C zijn de variabelen meestal macro's die worden gelezen door een pre-processor.-De verklaring.De basistests die kunnen worden uitgevoerd voor voorwaardelijke compilatie zijn of een waarde is gedefinieerd, niet gedefinieerd of, in sommige gevallen, of twee gedefinieerde variabelen equivalent zijn.De variabelen of macro's zelf hebben over het algemeen geen enkele waarde van significantie, omdat de handeling ervan is waar de richtlijnen op controleren.Met sommige talen en compilers kan de waarde van een gedefinieerde variabele echter belangrijk zijn als ze worden geëvalueerd voor de Booleaanse toestand.

Wanneer een compiler richtlijnen tegenkomt die worden gebruikt voor voorwaardelijke compilatie, worden de richtlijnen geëvalueerd om te zien of ze testen als waar of onwaar.Indien waar, wordt de code die de richtlijn volgt als normaal samengesteld;Anders zal de compiler de code onder de richtlijn volledig overslaan.Dit is in tegenstelling tot voorwaardelijke logische instructies binnen de uitvoerbare programmacode zelf, omdat, zelfs als de logica een code blok heeft die niet kan worden uitgevoerd, deze in de meeste gevallen nog steeds wordt geïnterpreteerd en gecompileerd.Met voorwaardelijke pre-processor-richtlijnen wordt overgepaalde code nooit opgenomen, geïnterpreteerd of gecompileerd.Er moet ook worden opgemerkt dat zodra de pre-processor alle voorwaardelijke variabelen en richtlijnen heeft geëvalueerd, ze niet zijn samengesteld met de rest van het programma, omdat ze alleen bedoeld zijn om richting te geven aan de compiler.

Voorwaardelijke compilatie is het vaakstgebruikt om code op te nemen of uit te sluiten die specifiek is voor een bepaald besturingssysteem of omgeving.Dit betekent dat bibliotheken die in één besturingssysteem bestaan voorwaardelijk kunnen worden opgenomen als de richtlijnen bepalen dat het programma wordt samengesteld onder dat besturingssysteem.Als alternatief kunnen de richtlijnen ook worden gebruikt om code op te nemen of uit te sluiten op basis van door de gebruiker gedefinieerde variabelen.Dit kan worden gedaan, dus debuggen of profileringcode is niet opgenomen in de definitieve versie van een programma, of zo kunnen bepaalde functies worden ingeschakeld of uitgeschakeld zonder afzonderlijke kopieën van de code te hoeven onderhouden.