Void-Int



  • /* hello.c */
    #include <stdio.h>

    void main(void)
    {
    printf("Hello, world!\n");
    }

    Wenn ich das kompiliere bekomm ich eine Fehlermeldung:
    hello.c:3: error: ‘::main’ must return ‘int’

    Wenn ich void durch int ersetze ggeht es:

    /* hello.c */
    #include <stdio.h>

    int main(void)
    {
    printf("Hello, world!\n");
    }

    Wieso ist das so?



  • ^^das ist laut c-standard so festgelegt. dumme sache, ich weiss. normalerweise gibt's nur ein warning bei 'void main'. wieso er dir 'nen error gibt, weiss ich auch nicht.
    🙂



  • +fricky schrieb:

    ^^das ist laut c-standard so festgelegt. dumme sache, ich weiss. normalerweise gibt's nur ein warning bei 'void main'. wieso er dir 'nen error gibt, weiss ich auch nicht.
    🙂

    könnte vielleicht an den Optionen liegen. Bei gcc kann man z.b. alle Warnungen als Fehler durchgehen lassen, dann wird der Compilevorgang bei jeder Warnung abgebrochen.



  • Wenn mich nicht alles taeuscht, liegt dies daran (bin zu faul jetzt nachzuschauen), dass der POSIX-Std. einen Rueckgabewert fuer ein Programm verlangt.


Anmelden zum Antworten