Programmeren in C/C-Preprocessor: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Kleuske (overleg | bijdragen)
Kleuske (overleg | bijdragen)
Regel 99:
Met behulp van conditionele preprocessor directives kunnen selectief stukken code worden opgenomen of genegeerd. Dit is buitengewoon handig in velerlei omstandigheden, selectief opnemen van debug-code, bijvoorbeeld. De algemene structuur is die van een ''if-then-else'' constructie zoals die in vele talen voorkomt.
 
=== #if (<expressieconstant_expressie>)===
 
De '''#if''' preprocessor directive voegt afhankelijk van de expressie code in. Het is belangrijk daarbij op te merken dat de expressie alleen mag bestaan uit elementen die bekend zijn op het moment dat de C-Preprocessor actief is. Het bis dus nutteloos (en zelfs fout) in de expressie C-variabelen of functie-aanroepen te gebruiken, die zijn namelijk pas bekend als de C-Compiler aan de beurt komt.
Regel 111:
</source>
 
Het volgende voorbeeldje (ontleend aan ''real life'' code van een beunhaas) werkt niet naar behoren, wat de beunhaas in kwestie erg verbaasde. Het probleem zit er natuurlijk in dat ''sizeof(int) == 4'' volslagengeen onbekendconstant_expressie is als de preprocessor aan het werk is. Deze heeft geen notie van ''int'' en kent geen ''sizeof'' operator.
 
<source lang="c">
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.