www.mikrocontroller.net

Forum: Compiler & IDEs Headerdateien


Autor: Hans (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe gerade versucht Funktionen in Headerdateien auszulagern.
Wie macht ihr die Wertübergabe.
Nach meines Wissens ersetzt der Comp. den Befehl 'inclu.... durch den
Inhalt des headerdatei.
Liege ich richtig, oder habe ich etwas verdreht.
Dann könnte ich alse die global Variablen in der Headerdatei anlegen.
Gibt es etwas grundlegendes, wenn ich "Sachen" auslagern möchte.

Autor: The Daz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hans,
in header Dateien packt man nur die interfaces anderer Komponenten.
Also nicht ganze Funktionen sondern nur deren Prototyp. Der
pre-processor ersetzt vor dem kompilieren das include statement durch
den Inhalt der entsprechenden Datei. Vermeide globale Variablen wo du
nur kannst um deine code Struktur sauber zu halten (information
hiding). Auslagern von Funktionalitaet macht man mir libraries, nicht
header files.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Vermeide globale Variablen wo du nur kannst um deine code Struktur
> sauber zu halten (information hiding).

So spricht der Informatiker.

Der langjährige Embedded-Programmierer wird (auf Grund der möglichen
Ressourceneinsparung) diese Aussage oft, sehr oft relativieren...  Für
das "information hiding" kann er sich nämlich sowieso nix kaufen,
seine Software ist ein abgeschlossenes Ganzes, das er nur selbst
benutzt und sonst niemand.  Für die eingesparten Ressourcen kann er
sich u. U. aber einiges kaufen (indem man z. B. im fertigen Projekt
dann mit dem nächstkleineren Prozessor auskommt).

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Hans (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo

Ich habe gerade ein Problem mit der Deklaration von einer
String-Varible.
Wenn ich es so wie im Anhang machen funkt es.
Wenn ich aber in der Headerdatei die Varable einen Wert zuteilen möchte
weigert er sich.
Warscheinlich ist der Grund, das der Befehl in einer Funktion stehen
muß z.B. main().
Gibt es eine möglichkeit das ich den Startwert schon vorher geben
kann.
Auch das mit
char temp["Hallo"];
haut nicht hin.

Gruß

Autor: Karl heinz Buchegger (heinzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Header Menue.h
******************


extern char Temp_Char00[9];  /* Deklaration, wenn du hier eine
                              * Initialisierung angibst, wird aus
                              * der Dekleration eine Definition, auch
                              * wenn das ganze 'extern' ist (extern
                              * wird in so einem Fall dan ignoriert
                             */

in main.c
*********

#include "Menue.h"

char Temp_Char00[9] = "Hallo";

int main()
{
  ...
}

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.