Forum: PC-Programmierung Fehler in Initialisierungsbeispiel MIT OCW C-Kurs


von Alexander S. (alesi)


Lesenswert?

Hallo, normalerweise sind die Online-Kurse unter MIT OCW ganz solide.
Auf Seite 14 in 
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/lecture-notes/MIT6_087IAP10_lec02.pdf 
steht jedoch als Beispiel einer Deklaration:
1
char x=y=Z;  / multiple initializations /
was meiner Meinung nach und auch nach gcc
1
~/Test$ gcc -Wall -pedantic -ansi -O0 -g test_init.c -o test_init
2
test_init.c: In function main:
3
test_init.c:6:11: error: y undeclared (first use in this function)
4
  char x = y = 'Z';
5
           ^
so nicht geht. Gehen würde
1
  char x = 'Z', y = 'Z';
2
oder
3
  char y = 'Z';
4
  char x = y;
Kennt Ihr eine Variante von C, wo der Code aus dem Beispiel erlaubt ist?
Im Kurs wird ANSI C (C89) / ISO C (C90) verwendet.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Das hängt vom Kontext ab. Folgendes geht:
1
int main(void) {
2
  int x;
3
  int y = x = 3;
4
}

Nur sind das dann nicht "multiple initializations", sondern "one
assignment and one initialization".

von Alexander S. (alesi)


Lesenswert?

Ja, ok. Wenn y vorher deklariert ist, geht das natürlich.

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.