Gast
#2136570
Hallo! Das kann mir bestimmt jemand direkt beantworten: Kann ich schreiben
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
ohne dass die "i"s sich beeinflussen?
|
Anzeige
|
Einfache Frage zu C: Zweimal gleiche Variable bei Funktionsuafruf
Gast
#2136570
Hallo! Das kann mir bestimmt jemand direkt beantworten: Kann ich schreiben
ohne dass die "i"s sich beeinflussen? nenn das innere i halt j? mfg mf
Gast
#2136579
Ist ja nur ne Frage zum Verständnis...dass ich die anders benennen kann ist klar!
Gast
#2136581
nein, das haut dir dein compiler schon wegen der Redefinition von i um die Ohren - und wenn Du diese weglaesst, laeuft deine innere schleife genau einmal. Danach ist i naemlich = 10, und die aeussere Schleife wird verlassen. Warum nimmst Du nicht einfach eine zweite Variable?
Gast
#2136582
OK, danke! Wie gesagt, war nur ne generelle Frage. Einen Block bilden oder die innere Zählung in einer anderen Funktion auslagern? mfg mf Funktionsaufruf, wo? C99: ja, das müsste gehen, ev. sogar in K&R C. Variablen sind lokal im Block, in dem sie stehen. Aber: Schlechter Stil.
Gast
#2136590
Wie ist das denn beim Aufruf einer anderen Funktion?
Kriegen die sich da auch in die Wolle?
Gast
#2136592
Also erlaubt ist das schon. Zugriff Erfolg dabei immer zuerst auf die lokalere Variable, falls 2 gleichnamige/typige existieren. Allerdings ist es extrem mießer Stil. :-)
Gast
#2136594
Tom M. schrieb: > Funktionsaufruf, wo? Ja...ist mir auch aufgefallen, daher jetzt nachträglich der Aufruf.
Gast
#2136595
> nein, das haut dir dein compiler schon wegen der > Redefinition von i um die Ohren - Das i ist nicht redefiniert, weils in einem anderen scope steht. Ein gcc übersetzt das auch vollkommen richtig (s?uint8_t?int?g;):
Man nennt das übrigens auch Verschattung. Schön isses trotzdem nicht. Gero schrieb: > Kriegen die sich da auch in die Wolle? Wieso "auch"? Es gibt "auch" hier keinen Konflikt. Jetzt kram endlich (d)ein C Lehrbuch raus und lies mal über Variablen und Geltungsbereiche (Scope). :) Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|