www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik C extern deklarieren aber wo


Autor: Aubacke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute,

eine Frage: Ich mache gerade ein Projekt mit anderen Entwicklern einer 
anderen Firma. Jetzt soll mein Modul als Objektcode übergeben werden um 
es einzubinden (kein C Code).

Mein Modul soll Variablen anderer Module verarbeiten, sodass ich mir nun 
die Frage stelle, ob man:

a) die Headerdateien der anderen Module, in denen die Variablen 
vorkommen bei mir einbindet (diese müssen dann natürlich extern 
deklariert sein), oder

b) ich die Variablen in meiner Headerdatei als extern deklariere und sie 
damit einfach annehme ?

Was ist besser ? Was würdet ihr tun ? Wo können Probleme auftreten 
(ausser dass alles eindeutig definiert sein muss) ?

Vielen Dank und Grüße

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Variante a.

Variante b ist Pfusch.

Wer ein Interface zur Verfügung stellt (und dazu gehört hier auch die 
globale Variable), ist nicht nur für die Definition, sondern auch für 
die Deklaration verantwortlich.

Autor: MaWin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man definiert ein Interface, ein API, und liefert den C-Programmierer 
dafür eiene C-Headerdatei in der deine Funktionen mit ihren übergebenen 
Datentypen deklariert sind.

In welcher Form das API ist, ob native C-Funktionen mit übergebenen 
C-Strukturen, ob C++-Klassen, ob COM Objekte, stimmt man mit den Leuten 
ab.

Werte werden also übergeben, bei vielen Werten wird ein Verweis auf die 
Struktur übergeben oder eine Struktur zum einfüllen zur Verfügung 
gestellt.

Bei OBJ muss man auch darauf achten, welche LIBraries die ihrreseits 
wieder sehen wollen, es ärgert, wenn das eine eingebundene OBJekt 
plötzlich massenhaft LIBraries benötigt, die das Hauptprogramm gar nicht 
braucht, womöglich noch eine eigene Speicherverwaltung, GUI-API oder 
managed code.

Autor: Volker Zabe (vza)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dies ist eine Frage der Veranatwortlichkeiten.

Stell dir selbst die Frage (bei beiden Varianten) wer Vereantwortlich 
ist, und wer dann die Änderungen machen muss, wenn es nicht 
funktioniert.

ciao

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.