Archiv verlassen und diese Seite im Standarddesign anzeigen : error: initializer expression list treated as compound expression
Hallo ihr,
ich habe mich mal wieder mehr mit cpp beschaeftigt, habe aber einen
Error, den ich mir nicht erklaehren kann:
Das Programm
#include <iostream>
using namespace std;
int a;
int b;
int c;
int test(int,int)
{
c=a+b;
}
int main()
{
cin >> a;
cin >> b;
int test(a,b);
cout << c << endl;
}
wird vom Compiler mit
test2.cpp: In function `int main()':
test2.cpp:18: error: initializer expression list treated as compound expression
quittiert.
Ich glaube dass das ein ziemlich dummer Fehler ist, habe aber mom. eine Blockade...
Danke,
Zorn
anda_skoa
14-11-2004, 14:24
Nimm das "int" in Zeile 18 weg.
Ciao,
_
Die Definition Deiner Funktion "test" ist etwas seltsam:
int test(int a, int b)
{
//...
}
Müsste etwas richtiger sein, nicht?
;)
Nimm das "int" in Zeile 18 weg.
Ciao,
_
Dankeschoen, das war der Fehler.
Der Code ist total falsch. Richtg:
#include <iostream>
using namespace std;
int test(int a, int b)
{
return a + b;
}
int main()
{
int a = 0, b = 0, c = 0;
cin >> a;
cin >> b;
c = test(a,b);
cout << c << endl;
return 0;
}
hmm, ist dann mein Code wirklich total falsch? Ich meine jetzt kann
ich ohne Probleme kompelieren und ausfuehren...
:confused:
Total falsch ist er nicht, es braucht nur folgende änderung in zeile 18:
c = test(a,b);
Allerdings ist es besser, wenn man mit wenigen globalen variablen auskommt (siehe panzi)!
Globale Variablen werden aber bereits im voraus initialisiert, ich glaube mit 0. C/C++ ist lange her :( leider :(
anda_skoa
16-11-2004, 16:22
hmm, ist dann mein Code wirklich total falsch? Ich meine jetzt kann
ich ohne Probleme kompelieren und ausfuehren...
:confused:
Nein, bis auf das "int" ist er schon richtig, aber nicht sehr schön.
Sehr wahrscheinlich ist deine Intention genau das, was Panzi gepostet hat.
Ciao,
_
Nun:
#include <iostream>
using namespace std;
// warum hier globale variablen??
int a;
int b;
int c;
// warum unbeannnte parameter und dann eine
// berechnug mit den _globalen_ variablen?
int test(int,int)
{
c=a+b;
// FEHLER: funktion hat den return wert int,
// es fehlt aber das return statement
}
int main()
{
cin >> a;
cin >> b;
// FEHLER: hier deklarierst du eine Funktion?
// sollte wohl c = test(a,b); heißen.
// nur eigentlich könnte man, so wie du es programmiert hast,
// auch fast so schreiben: test(); wenn du keine parameter
// deklariert hättest, du verwendest sie ja eh nicht.
int test(a,b);
cout << c << endl;
// FEHLER: wie oben: return fehlt.
}
Auf nen ordentlichen Compiler solte das garn nicht kompelieren!
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.