- fchao-Sinus-Wechselrichter AliExpress         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 13 von 13

Thema: globale Variable und Interrupt

  1. #11
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    21.10.2005
    Ort
    Erde
    Alter
    57
    Beiträge
    1.195
    Anzeige

    E-Bike
    Das ist schon richtig sternthaler, dass das so funktioniert. Aber Deine Kollegen werden Dich hassen, wenn sie den Code später mal pflegen müssen, weil es nun mal unüblich ist, die Variablen im Header zu definieren.

    Stell Dir einen Header als eine Art Dokumentation vor, die Dir, Deinen Kollegen und dem Compiler sagen, was es an Variablen, Datenstrukturen, Funktionen, etc. gibt. Wo die dann definiert sind, ist erst zur Linkzeit von Belang.

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.802
    @Sternthaler: Oops, ich dachte, das wären private Code-Conventions. Da wär sowas ja vertretbar.

    Zudem musst du wissen, WELCHE Datei den Header includet. Aber wenn man in einem (großen) Projekt arbeitet, weiß man das nicht unbedingt. Nehmen war an, die Standard-Libs/Header wären so gestrickt, und du willst ein Modul source.c schreiben, das std-Funktionen/Objekte verwendet.

    Weil du in source.c Lib-Functions verwendest, musst du in source.h die libfuncs.h includen, damit jemand, der dein Modul benutzt (für ihn ist dein Modul ne Black-Box) keine unaufgelösten Referenzen bekommt. libfuncs.h kann aber nicht wissen, wo es später stehen wird! Und die Compilezeit von libfuncs.c kann eine ganz andere sein, als die von source.c oder source.h! (Bibliotheken!). Du müsstest dann zur Linkzeit wissen, wie die Quelle aussieht!!!

    Nix für ungut, immerhin willst du deine Brötchen mit dem Code verdienen

    ::Edit::

    Zu dem "extern". Ich hab's rausgenommen. Ein Fehler ist's allerdings nicht. Man sieht dann aber in der Quelle direkt, ob das Ding static oder extern ist. Ebenso könnte ein "static" dort stehen.
    Disclaimer: none. Sue me.

  3. #13
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    29.05.2005
    Beiträge
    1.018
    Nun doch noch mal ein Kommentar von mir.
    (Es läßt mich doch nicht los, warum meine Kollegen mich noch nicht hassen bzw. dass es mit Lib's doch geht)


    Ich fange mal mit den Lib's an:
    Wir haben pro Lib jeweils ein eigenes Unterverzeichniss.
    Somit ist bekannt, welche C-Sourcen und deren Header-Dateien immer zur Lib gehören.
    Wenn nun für ein Programm eine dieser Libs mit eingebunden werden muss, dann gibt es ja tatsächlichdas Problem, welche dieser Heder-Dateien von meinem Programm alle includet werden müssen.
    Die Lösung ist folgende:
    Es gibt in dem Lib-Verzeichnis immer eine Heder-Datei, die nur die dort vorhandenen Header der Sourcen includet. Somit muss das eigendlich zu schreibende Programm nur diesen Header includen. (P.S: Header der C-Sourcen und sammelnder Header werden bei uns mit dem make im Lib-Verzeichnis erzeugt. Ist ein bei uns gebasteltes Programm. Natürlich geheim!)


    Zum Thema hassende Kollegen:
    Eigendlich sprechen noch alle mit mir und bei Feten geht auch keiner 'plötzlich' weg wenn ich komme. Kann also nicht so schlimm sein.
    Eventuell liegt es daran, dass dieses Verfahren bei mir in der Firma schon so lange benutzt wird, dass sich da keiner mehr Gedanken drum macht (deshalb habe ich hier wohl auch die Probleme es darzustellen), oder es liegt daran, dass die verpönten globalen Variablen so in der Minderheit sind, dass schon lange keine mehr angelegt werden mussten und somit keiner so richtig weiss ob er damit (diesem Schema) Probleme hat.
    Ausserdem sollen die nicht mich hassen, da ich zwar den ganzen Haufen verwalte und 'nur' für die Integration von Kundenwünschen zuständig bin, ich aber erst seit 15 Jahren in der Firma bin und diese Struktur schon übernehmen musste. (Hört sich nach altem Zeug an, ist aber unter anderem auch WEB-fähig ohne Java zu nutzen. Ist ja schliesslich auch nur C)
    Lieber Asuro programieren als arbeiten gehen.

Seite 2 von 2 ErsteErste 12

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress