Programmeren in C/C-Preprocessor: verschil tussen versies

Verwijderde inhoud Toegevoegde inhoud
Khx023 (overleg | bijdragen)
k typos
Regel 1:
{{Programmeren in C}}
De C-Preprocessor met zijn ''preprocessor-directives'' staat, technisch gezien, los van de C-Compiler en heeft tot taak de broncode "voor te koken", dat wil zeggen, losse bestanden in te voegen, stukken code conditioneel op te nemen of weg te laten en voorgedefineerde tetkstenteksten te vervangen (''macro expansion''). Dit gebeurt allemaal '''voordat''' de C-Compiler zelf aan de beurt komt die uiteindelijk alleen het resultaat van de interpretatie ziet.
 
In dit hoofdstuk zullen de belangrijkste preprocessor constructies worden behandeld.
Regel 59:
</source>
 
Als NUM_USERS veranderdverandert (de directie heeft eindelijk besloten de stokoude, overbelaste server te vervangen) hoeft de waarde '''10''' maar op een plaats vervangen te worden. Als de '''10''' ''hardcoded'' in de broncode staat, moeten alle bestanden apart worden nagegaan en voor iedere '''10''' moet bekeken worden of het om het aantal gebruikers gaat, de afmetingen van een record of het maximum aantal log-meldingen per dag. Onnodig te vermelden dat dat een hoofdpijn-klus is. Lijstjes als hierboven (en vaak nog veel langere) zijn dan ook een vast onderdeel van de broncode.
 
Het is een goede gewoonte (en is bij professionele organisaties veplicht) om namen van macros uitsuiltend in ''uppercase'' te schrijven, ter onderscheiding van variabelen en functies. Iedere ervaren programmeur heeft zich al eens het hoofd gebroken over het onverwachtte gedrag dat voortvloeit uit verwarring over dit onderscheid. Het resultaat bestaat meestal uit rare compiler-foutmeldingen (de macro-expansie is immers prima gelukt) in stukken code die er verder prima uitzien, of onverwacht gedrag in ''runtime''. Ervaring is recht evenredig met het aantal fouten dat je gemaakt hebt, zegt men dan.
Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.