Forum: Compiler & IDEs Gleiche Variablennamen in unterschiedliche C-Files


von Ronny (Gast)


Lesenswert?

Hallo!

Hab eine Frage an euch. Habe ein Programm, dass aus mehreren c- und 
h-Files besteht. Bisher habe ich immergedacht, dass die Variablen, die 
ich in einem c-File deklariere nur für dieses c-File gültig sind, aber 
jetzt habe ich gleiche Variablennamen in zwei c-Files und der Compiler 
mosert das an.
1
Ssymbol "my_value" redefined: first defined in "./calc_p.obj"; redefined in "./calc_v.obj"

Was habe ich falsch verstanden/gemacht?

Danke für eure Hilfe.

Ronny

von Peter (Gast)


Lesenswert?

die Frage ist wie du sie deklariere hast.

von Johann (Gast)


Lesenswert?

Variablen "static" deklarieren

Ronny schrieb:
> Bisher habe ich immergedacht, dass die Variablen, die
> ich in einem c-File deklariere nur für dieses c-File gültig sind

Das sind sie nur, wenn sie als "static" deklariert werden.

von Ronny (Gast)


Lesenswert?

Global.

Im einem, wie auch anderem steht:
1
unsigned int my_value;

von Clown (Gast)


Lesenswert?

Die Variablen müssen als static deklariert werden um nur innerhalb der 
Übersetzungseinheit sichtbar zu sein.
1
static int var;

von Ronny (Gast)


Lesenswert?

Johann schrieb:
> Das sind sie nur, wenn sie als "static" deklariert werden.

Ah, dann wird es wohl daran liegen. Aber nachteil daran ist, dass ich 
sie dann zur Laugzeit nicht mehr debuggen kann. Zumindest ist das beim 
CCE der Fall. - Warum auch immer.

von Walter (Gast)


Lesenswert?

genauso wie der Debugger Schwierigkeiten hat geht es auch einem Menschen 
der dein Programm mal anschaut

von Ronny (Gast)


Lesenswert?

Witzbold! In Karnevalslaune, wie?

Der CCE+FET430UIF kann einfach keine static Variablen zur Laufzeit 
einlesen. Warum auch immer.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ronny schrieb:

> Der CCE+FET430UIF kann einfach keine static Variablen zur Laufzeit
> einlesen. Warum auch immer.

Dann beschwer' dich beim Hersteller, aber nicht hier.  Hier ist das
GCC-Forum, und GCC sowie seine Debugger haben kein Problem, ein
Feature, das es seit 40 Jahren in der Sprache C gibt, brauchbar zu
unterstützen.

von Johann (Gast)


Lesenswert?

Wieso zum Teufel auch nennst Du die Variablen dann nicht einfach 
unterschiedlich? Ist das zu naheliegend?

von Ronny (Gast)


Lesenswert?

Ich hab mich nicht beschwert, sondern nur die Aussage gemacht, dass der 
Debugger mit static-Variablen Probleme macht...

Das Problem hat nichts mit meiner ursprünglichen Frage zu tun. Der 
Kompiler ist mit den static-Variablen zufrieden...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ronny schrieb:
> Ich hab mich nicht beschwert

Nur dumme Bemerkungen gemacht über Leute, die dir helfen wollten.

Weißt du, warum das hier das GCC-Forum ist und nicht das für jeden
beliebigen C-Compiler?  Weil hier die vesammelt sind, die sich mit
dem GCC auskennen.  Folglich werden sie, wenn du hier eine Frage
stellst, erstmal mit dem Wissen rangehen, was sie vom GCC kennen.
Dann brauchst du sie nicht beschimpfen, wenn sie die Unzulänglichkeiten
deiner Umgebung halt nicht kennen (und sich sowas vielleicht auch
nicht vorstellen können).

von Ronny (Gast)


Lesenswert?

WEr greift hier wen an?

Walter schrieb:
> genauso wie der Debugger Schwierigkeiten hat geht es auch einem Menschen
> der dein Programm mal anschaut

Hat Herr Walter meinen Code gesehen? Nein! Also. Das verstehe ich nicht 
als Hilfe. Bis zu diesem Kommentar war alles ok. Ich habe meine Frage 
beantwortet bekommen und Rückfragen beantwortet. Aber ans Bein pinkeln 
lasse ich mir nicht!


Jörg Wunsch schrieb:
> Weißt du, warum das hier das GCC-Forum ist und nicht das für jeden
> beliebigen C-Compiler?

Meine Frage war allgemein und sollte Compiler unabhängig sein. Und GCC 
ist das einzige Forum, dass sich mit meinem Thema beschäftig. Ich hab 
weder was mit PC-Programmierung am Hut, noch mit Codesammlung und 
Hardware schon drei mal nicht...
Mehr Themen gibt dieses Forum ja nicht her.

von Thomas (Gast)


Lesenswert?

"Nur dumme Bemerkungen gemacht über Leute, die dir helfen wollten."

Nein, es war eine dumme Bemerkung über jemand der NICHT helfen wollte.


Der einzige Fehler den Ronny gemacht hat war seinen Compiler nicht zu 
nennen. Den Streit angefangen hat
Autor: Walter (Gast)
Datum: 07.03.2011 09:22

und Ronny hat dann nur mit
"Witzbold! In Karnevalslaune, wie?" geantwortet. Fand ich eigentlich 
passend als Antwort auf den überflüssigen Beitrag von Walter.

von Ronny (Gast)


Lesenswert?

Danke für dein Verständnis. Wenigstens einer, der mich und den ganzen 
Dialog verstanden hat! ;)

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Ronny schrieb:

> Hat Herr Walter meinen Code gesehen? Nein! Also.

Wenn man in verschiedenen Modulen globale Variablen gleich benennt,
die aber am Ende etwas unterschiedliches sind, dann ist es, unabhängig
davon, wie dein Code aussieht, schon ein wenig verwirrend.  Davon musst
du dich nun auch nicht gleich angep***t fühlen.


> Meine Frage war allgemein und sollte Compiler unabhängig sein. Und GCC
> ist das einzige Forum, dass sich mit meinem Thema beschäftig.

Nein, "Mikrocontroller und Elektronik" ist dafür da, wenn es um
Controllerprogrammierung ohne GCC geht.

Am Ende hat sich gezeigt, dass die Frage doch nicht so compiler-
unabhängig war, wie's auf den ersten Blick scheint.  GCC hätte dir
unter Umständen übrigens gar keine Fehlermeldung geschmissen, sondern
nur nicht das getan, was du erwartest: beide globale Variablen wären
zur selben verschmolzen.  Diese Vorgehensweise ist als eine mögliche
Option vom C-Standard komplett gedeckt.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.