Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

Unterschied "int main" und "void main"

hallo,
kann mir jemand den Unterschied von "int main" und "void main" erklären. Gibt es überhaupt einen???
 ??? ??? ???

Danke im voraus

« Letzte Änderung: 24.05.05, 19:13:58 von Dr.Nope »

Antworten zu Unterschied "int main" und "void main":

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Die Funktion main liefert das "Ergebnis" an das aufrufende "Programm" zurück. Das ist in diesem Fall das Betriebssystem. "Return 0" heisst: fehlerfrei beendet.

"void main" liefert kein Ergebnis zurück und ist auch kein sauberer Standrd. Einige Compiler monieren dies auch als Fehler.

also wäre "int main" richtiger??? ;););)

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ja klar. Void main ist eigentlich falsch.

Nach dem ANSI C Standard sollte man wie folgt aussehen :

int main(int argc, char* argv[]);

Da aber nach altem K&R C Parameter und der Rückgabewert nicht angegeben werden müssen (ausser man benutzt diese) hat sich das leider eingebürgert, main frei nach Schnauze zu schreiben.

Die meisten Compiler ignorieren derzeit noch Fehler in der Definition von main. Vielleicht wird dieses Verhalten in der Zukunft abgeschaltet ...

PS: void als Rückgabewert bedeutet nur, das der Rückgabewert ein int ist, dessen Wert undefiniert ist ...

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

Ein Standard-Konsolprogramm in C sollte in etwa so aufgebaut sein (der folgende Code kommt vom Compiler lcc-win32):

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void Usage(char *programName)
{
   fprintf(stderr,"%s usage:\n",programName);
   /* Hier gibst du an, wie dein Programm aufzurufen ist */
}   

/* returns the index of the first argument that is not an option; i.e.
   does not start with a dash or a slash
*/
int HandleOptions(int argc,char *argv[])
{
   int i,firstnonoption=0;

   for (i=1; i< argc;i++) {
      if (argv[i][0] == '/' || argv[i][0] == '-') {
         switch (argv[i][1]) {
            /* An argument -? means help is requested */
            case '?':
               Usage(argv[0]);
               break;
            case 'h':
            case 'H':
               if (!stricmp(argv[i]+1,"help")) {
                  Usage(argv[0]);
                  break;
               }
               /* If the option -h means anything else
                * in your application add code here
                * Note: this falls through to the default
                * to print an "unknow option" message
               */
            /* add your option switches here */
            default:
               fprintf(stderr,"unknown option %s\n",argv[i]);
               break;
         }
      }
      else {
         firstnonoption = i;
         break;
      }
   }
   return firstnonoption;
}

int main(int argc,char *argv[])
{
      /* Diese Abfrage passt du an deine Anzahl Argumente an */
   if (argc == 1) {
      /* If no arguments we call the Usage routine and exit */
      Usage(argv[0]);
      return 1;
   }
   /* handle the program options */
   HandleOptions(argc,argv);
   /* Hier fügst du deinen eigenen Code für das Programm ein */
   return 0;
}

« Closed: Ist MCI-Ausgabe überhaupt asynchron möglich?chmod Befehl unter MinGW/Msys »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
Internet-Zugriffsprogramm
Ein Internet-Zugriffsprogramm, auch Browser genannt, stellt Internetseiten für den Benutzer dar. Am bekanntesten ist der Microsoft Internet Explorer, gefolgt vom kos...

Programm
Siehe Software...

Betriebssystem
Das Betriebssystem ist das Steuerungsprogramm des Computers, das als eines der ersten Programme beim Hochfahren des Rechners geladen wird. Arbeitsspeicher, Festplatten, E...