Einfaches C Programm ausführen geht nicht...



  • DirkB schrieb:

    Dass das Buch alt ist, kannst du schon am main() sehen.

    Aber nicht als Anfänger.



  • Man kann es auch am Erscheinungsdatum sehen (1999).



  • Auch damals schon gab es cl.exe auf der Konsole, und damals wie heute ist das hirnverbrannter Unsinn.



  • Darum gehts doch gar nicht.



  • DirkB schrieb:

    Du kannst einem alten Buch auch nicht anlasten, keine neueren Standards zu kennen.
    Dass das Buch alt ist, kannst du schon am main() sehen.

    Als Programmier-Anfänger kenne ich die Standards nun mal nicht. Nur wer die Sprache kennt, weiß ob main() alt oder neu ist.



  • melT schrieb:

    Als Programmier-Anfänger kenne ich die Standards nun mal nicht. Nur wer die Sprache kennt, weiß ob main() alt oder neu ist.

    main() ist wirklich nicht mehr aktuell (wurde ja schon erwähnt ^^)
    heute schreibt man int main(), das heißt:
    main ist eine Funktion die ein int zurückgibt.
    Glaub es gibt auch void main(), also eine Funktion die nichts zurückgibt (nichts !=0 !!!), bin mir da aber nich ganz sicher.
    [an dieser Stelle danke an DirkB]

    Und das Erstellen einer Quelldatei in VS hat Wutz ja bereits erklärt:

    Wutz schrieb:

    in VS:
    - neues C++ - Konsolen - Projekt
    - leeres Projekt
    - Hinzufügen / neue Datei / beispiel.c
    - Strg+F5

    Beste Grüße
    Lordakius



  • main gibt immer ein int zurück.
    Nur damals* wurde int als Rückgabewert angenommen, wenn keiner explizit angegeben wurde (bei jeder Funktion).

    Zu dem Prottyp von main gibt es sogar ein FAQ-Eintrag: http://www.c-plusplus.net/forum/viewtopic.php?t=39346

    *Seit C99 (also seit 15 Jahren) gibt es das Verbot des impliziten int.
    Aaaaaber MS unterstützt in seinem VS keinen Standard nach C89/C90. Es sei denn, es wird vom C++ Teil abgedeckt (z.B. einzeiliger Kommentar)



  • DirkB schrieb:

    *Seit C99 (also seit 15 Jahren) gibt es das Verbot des impliziten int.
    Aaaaaber MS unterstützt in seinem VS keinen Standard nach C89/C90. Es sei denn, es wird vom C++ Teil abgedeckt (z.B. einzeiliger Kommentar)

    Verständnisfrage meinerseits:
    Was bedeutet 'Verbot' in diesem Zusammenhang. Wenn ich einen solchen Code(also unter Verwendung von main()) mit gcc und dem flag -std=c99 kompiliere, erhalte ich eine Warnung. Es kompiliert trotzdem. Müsste bei einem Verbot nicht der Vorgang abgebrochen werden?

    Oder beschreibt -std=c99 keine strikte Einhaltung des C99-Standards?



  • phf schrieb:

    Oder beschreibt -std=c99 keine strikte Einhaltung des C99-Standards?

    Richtig erkannt.
    Dazu ist -pedantic noch zusätzlich notwendig.
    Und dass der Compiler dann auch wirklich abbricht, wird erreicht mit
    -pedantic-errors



  • Habt Dank!


Anmelden zum Antworten