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 u bronbestanden moet ruilen of wijzigen.Ilatie kan van de ene taal tot de andere variëren, 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. Meestal zijn de macro's niet toegankelijk door de werkelijke uitvoerbare programma -broncode, ook al bestaan ze in dezelfde bronbestanden.
De richtlijnen die worden gebruikt om de gedefinieerde voorwaardelijke variabelen te testen, zijn rudimentair en volgen dezelfde logica als een if-then-instructie. 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 echter, TDe waarde van een gedefinieerde variabele kan ertoe doen of 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 als waar of onwaar testen. 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 wordt meestal gebruikto Neem code op of sluit uit 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.