Einfache Frage zu C: Zweimal gleiche Variable bei Funktionsuafruf

Gast #2136581
Lesenswert?
• ▲
▼
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 #2136590
Lesenswert?
• ▲
▼
Wie ist das denn beim Aufruf einer anderen Funktion?
1
uint8_t funktion1 (void)
2
{
3
  uint8_t return_wert;
4

5
  return_wert = funktion2();
6

7
  return return_wert;
8
}
9

10
uint8_t funktion2 (void)
11
{
12
  uint8_t return_wert
13

14
  ...
15
  return return_wert;
16
}

Kriegen die sich da auch in die Wolle?
Gast #2136595
Lesenswert?
• ▲
▼
> 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;):
1
$ cat main.c 
2
#include <stdio.h>
3

4
int main()
5
{
6
        int i;
7

8
        for (i = 0; i < 10; i++)
9
        {
10
                int i;
11
                for (i = 0; i < 10; i++)
12
                {
13
                        printf(".");
14
                }
15
        }
16

17
        printf("\n");
18
        return 0;
19
}
20
$ gcc -Wall -std=c99 -o main main.c
21
$ ./main
22
....................................................................................................

Man nennt das übrigens auch Verschattung. Schön isses trotzdem nicht.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.