Ino und Header Dateien

OP #4710107
Lesenswert?
• ▲
▼
Hallo

Ich spiele ein wenig mit Arduino Due herum und dachte mir Deine Ino 
Datei ist groß und unübersichtlich.

Hallo bastelst Du Dir ein h und Ein C File

das steht im Header

#include <URTouch.h>


URTouch  myTouch(6, 5, 4, 3, 2);


Nur dummerweise zickt der Arduino Compiler jetzt in meinem
Header rum

Bibliothek URTouch im Ordner: 
D:\__Dokus\Documents\Arduino\libraries\URTouch (legacy) wird verwendet
exit status 1
unknown type name 'URTouch'


Kann ich die Klasse im Header so nicht deklarieren.

In den gesamten Ino File hat alles funktioniert.
Persönliche Seite #4710430
Lesenswert?
• ▲
▼
Headerdateien sind dafür da, Dinge, die in einem Codemodul definiert 
werden, von außen (d.h. aus anderen Codemodulen) nutzbar zu machen. Also 
werden Headerdateien von jedem Codemodul genutzt (dort eingebunden), das 
auf diese Dinge zugreifen soll.

Wenn nun eine Definition in einer Headerdatei steht, wird das zugehörige 
Objekt bei jedem Einbinden erzeugt. Und damit ist es mehrfach vorhanden 
... was zu Fehlermeldungen des Linkers oder sehr spannenden 
Nebeneffekten führt.

In Headerdateien gehören also nur Deklarationen ("Irgendwo gibt es ein 
Objekt, das so und so aussieht"), keine Definitionen ("Das hier, an 
diesem Speicherplatz, das ist ein Objekt, das so und so aussieht").


"Objekt" bezieht sich hier auf Variablen oder Funktionen, und nicht auf 
"Objekte" im Sinne der objektorientierten Programmierung.

Eine Deklaration einer Variablen erfolgt durch Voranstellen des 
Schlüsselworts "extern", eine Deklaration einer Funktion erfolgt durch 
Angeben des Funktionsprototypen; das Schlüsselwort "extern" ist hier 
implizit und kann daher auch weggelassen werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren