Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Übertragung von C++source in C-source

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] > 16 < [ 17 ] [ 18 ] [ 19 ] [ 20 ]
150
06.01.2004, 11:52 Uhr
Lumina



Also, wir verwenden ja den MS-Schrott, Visual Studio C++ bzw. C!! Leider, da bin wohl hier falsch...

warning C4035: 'main' : Kein Rueckgabewert
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
151
06.01.2004, 11:55 Uhr
Pablo
Supertux
(Operator)


Dann musst du ganz am Schluss return 0 haben, so


C++:
int main() {
//programm schreiben.
...
    return 0;
}



Damit VC++ C kompiliert, müssen die Dateien auch die Endung .c haben.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
152
06.01.2004, 11:57 Uhr
Lumina



ja, das ist mir schon klar, dass ich .c bei dem Dateinamen brauche.

Aber wenn ich oben nicht schreibe int main(){...
sondern nur main()... dann hab ich ja automatische keinen Rückgabewert und brauch auch das return 0 nicht...
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
153
06.01.2004, 12:01 Uhr
Lumina



ok, könntest doch irgendwie recht haben, sorry, habs jetzt mal getestet:

DEINE VERSION:


C++:
main()
{
    int x = 3, y = 9, z = 7;
    long maximum;

    maximum=max(max(x,y),z);
    printf("Das %s von %d, %d und %d ist %d.",
           "Maximum", x, y, z, maximum);
    return 0;
}



MEINE VERSION:

C++:
void main(void)
{
    int x = 3, y = 9, z = 7;
    long maximum;

    maximum=max(max(x,y),z);
    printf("Das %s von %d, %d und %d ist %d.",
           "Maximum", x, y, z, maximum);
}



BEIDE HABEN OFFENBAR DIE GLEICHE BEDEUTUNG!

0 FEHLER, 0 WARNUNGEN!!
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
154
06.01.2004, 12:03 Uhr
Lumina



ich glaub, ich kann mich sogar schwach erinnern, dass void main(void) nur so ein Ausdruck bei MS ist, also nicht ANSI-Standard. Ja, ich glaube, dass hat unser Prof mal erwähnt...
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
155
06.01.2004, 12:10 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

Also, wir verwenden ja den MS-Schrott, Visual Studio C++ bzw. C!!


Na,... das ist aber nicht sehr nett.... Ob ich dir jetzt noch helfe


Zitat:

dass void main(void) nur so ein Ausdruck bei MS ist


Es ist richtig das der ANSI-Standard vorschreibt das main einen wert zurückliefert aber mit MS hat das nichts zu tun...
Das frisst auch jeder andere Compiler...

Ist eigentlich auch Sch**ss egal ob man nun mit int main oder mit void main arbeitet.... hopsa es funzt...
Pablo sieht das anderes...
Ich würde sagen er zieht ein schlechtes Programm mit int main einem guten mit void main vor...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
156
06.01.2004, 12:13 Uhr
Lumina



na aber hallo, jetzt haben wir wieder mehr Gesellschaft... Hi Heiko!

Hast du einen Compiler zur Verfügung? Pablo mom. nicht!

Diskutiert ruhig weiter... muss jetzt schnell zum Essen runter....
--
*******************************************
Willst du glücklich sein im Leben, trage bei zu and'rer Glück,
denn die Freude, die wir geben, kehrt ins eig'ne Herz zurück!
*******************************************
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
157
06.01.2004, 14:40 Uhr
Clair Grube



Die zwei Fehler sind einmal der doppelt belegte max-Identifier, und der fehlende Errorcode als Rückgabewert.

Ich sollte mich mal wieder mit vernünftigem Nick einloggen...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
158
06.01.2004, 14:40 Uhr
virtual
Sexiest Bit alive
(Operator)


Warum ist der Thread eigentlich so lang wie er ist?
Egal, zu faul zum lesen, bestimmt jede Menge Spam.
@Lumina:

C++:
main()


Bedeutet;
- C, nicht C++
- Rückgabewert int wird implizt angenommen


C++:
void main()


- Weder C noch C++, weil Verletzung des ISO C++ und ANS C Standards. WErden wohl die meisten Kompiler fressen, aber jeder ist frei was anderes draus zu machen (siehe FAQ)
- Kein Rückgabewert.

Fazit: Die beiden versionen sind höchst verschieden.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
159
06.01.2004, 15:21 Uhr
Pablo
Supertux
(Operator)


Warum ich immer sage, main soll int sein und nicht int? Weil wir erstens im ANSI C/C++ Forum und zweitens irgendwas muss ich auch tun

Naja, virtual war schneller als ich und er kennt sich mit den Standards viel besser als ich aus, ich frag mich manchmal, woher er so viel von den Standards weißt.

Warum es sinnvoll ist, dass main Werte zurückliefert, ist meiner Meinung nach wegen den Skripten. Unter Winodos hat man außer .bat Skripte keine andere. Aber wenn man mit Linux arbeitet benutzt man häufig Bash, oder sh Skripten. Skripten machen selber nicht alles, sondern rufen auch andere Programme auf. Aber es könnte sein, dass diese Programme fehlerhaft terminieren, z.b. cp (copy) kann nicht kopieren, usw. Aber das Skript sollte drauf reagieren, und wenn es Fehler gibt weiter machen, oder was anderes machen oder versuchen es dir mitzuteieln.
bsp:

Code:
cp *.c /tmp && dir


Der Befehl "dir" wird nur dann ausgeführt, wenn cp fehlerfrei terminiert, in anderen Worten return 0 bei main oder exit(0). Wenn es aber Fehler gab, dann wird bestimmt main etwas ungleich 0 zurückliefern und dir wird nicht mehr ausgeführt. Deshalb finde ich sinvoll immer etwas zurückzugeben.

Naja,
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] > 16 < [ 17 ] [ 18 ] [ 19 ] [ 20 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: