[OPGELOST] Hoe gaat de compiler om met dubbel included Libraries

(deleted)

Als een library goed is opgezet kun je hem zelfs wel 10x opnemen. Dat kan je zien door een zgn. include guard.

Dat is in de Arduino.h bestand te zien als:

#ifndef Arduino_h
#define Arduino_h

En aan het eind staat er nog een

#endif

Dit betekent dat de compiler kijkt of er al een definitie is "Arduino_h". Zo niet gaat hij hem definieren en alles uitvoeren wat erna komt.
Bij de volgende include Arduino.h is Arduino_h reeds gedefinieerd en slaat hij alles over.

Als je echter met andere ontwikkelomgevingen werkt, dan moet de include "Arduino.h" vaak er wel bij. En of de ontwikkelaar weet wat hij doet? .....

JevanHa:
Verder wil ik ook weten hoe de compiler omgaat met die bibliotheek. Worden alleen de door jouw gebruikte functies in de object toegevoegd of wordt de gehele bibliotheek toegevoegd ?

De compiler compiled alle libraries die zijn toegevoegd. De linker daarentegen linkt alleen de functies die jij gebruikt :smiley:

(deleted)

(deleted)

Als je wat langer lid bent / wat meer posts hebt wordt die berking opgeheven :wink: Tegen de spam die hier nogal eens voorbij komt.

Overigens zou iedere .h eigenlijk de guard moeten hebben... Hoeft geen probleem te zijn (want op meer dan één plek de .h laden is vaak ook nodig) maar het kan wel als dat dan in een circeltje gebeurd...
Mooi stukje om te lezen: Headers and includes: Why and How

Je kan ook

#pragma once

in je headers zetten. Das een pak makkelijker. Ik ben nu bezig om dat automatisch te doen in alle header files in Sloeber omdat er zoveel mensen zijn die dit concept niet echt snappen.

(deleted)

(deleted)

Ook al is de markdown plugin natuurlijk altijd handig maar uhm

readme.txt

These .MD files are in github markdown format. They are intended to be read on the github website, as linked from the top repository page.

Vandaar :wink: