hallo,
kann mir jemand den Unterschied von "int main" und "void main" erklären. Gibt es überhaupt einen???
??? ??? ???
Danke im voraus
TheBest Gast |
TheBest Gast |
hallo,
kann mir jemand den Unterschied von "int main" und "void main" erklären. Gibt es überhaupt einen???
??? ??? ???
Danke im voraus
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.
Nach dem ANSI C Standard sollte man wie folgt aussehen :
int main(int argc, char* argv[]);
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 » | ||