einige fragen



  • Hab ich das richtig Kommentiert?

    #include<stdio.h>  //Bibliothek für den Befehl printf
    #include<conio.h> //Bibliothek für den Befehl getch()
    
    int main(void)
    {
    	int zahl1,zahl2,zahl3,zahl4;  //zahl1,2,3,4 werden deklariert
    	zahl1=3*2; //zahl1 wird Initialisiert
    	zahl2=zahl3=zahl1*2; //zahl2 wird Initialisiert
    	zahl3=zahl3*2; //zahl3 wird Initialisiert
    	zahl4=zahl3/4; //zahl4 wird Initialisiert
    	zahl1=zahl2*zahl4+zahl3; //zahl1 wird neu Initialisiert
    	printf("Egebnisse!!!!!!!!!!\n\n--------\nZahl1:%i\nZahl2:%i\nZahl3:%i\nZahl4:%i\n\n--------\a",zahl1,zahl2,zahl3,zahl4,zahl1); //zahl1 wird ausgegeben
    	getch(); // Hält das Fenster offen bis zu einer betätigung der Tastatur
    }
    

    Wäre das ein Fehler?

    void main()
    

    Wo ist der Unterschied ?

    int main()
    int void()
    

    Wann und für was ist die return funktion notwendig?



  • - nein
    - ja
    - das eine ist ein funktionskopf, das andere schwachsinn
    - wenn die funktion einen wert zurückgeben soll
    🙂



  • was habe ich falsch kommentiert?



  • #include<stdio.h>  //Bibliothek für den Befehl printf
    #include<conio.h> //Bibliothek für den Befehl getch()
    

    das sind header-dateien (also auch nur c quelltext), keine bibliotheken 🙂



  • #include <stdio.h> //Bibliothek stdio.h wird eingefügt für printf
    #include <conio.h> //Bibliothek stdio.h wird eingefügt für getch()
    
    #define druck printf //bennent printf in druck
    #define halten getch()//benennt getch() in halten
    
    int Hello(void);//Funktion : printf("Hello World")
    int Key(void);//Funktion :  printf("Press any Key")
    int Halten(void);//Funktion : getch()
    
    int main(void) //Hauptprogramm //Hier wird das vorkommen der Funktionen bestimmt
    {
        Hello();
        Hello();
        Key();
        Halten();
    	return 0; 
    }
    int Hello(void)//Funktion 1 wird zugewiesen
    {
        druck("Hello Word\a\n");
    }
    int Key(void)//Funktion 2 wird zugewiesen
    {
        druck("Press a key!");
    }
    int Halten(void)//Funktion 3 wird zugewiesen
    {
        halten;
    }
    

    wieso muss ich hier statt int void nehmen? und was bedeuted void überhaupt



  • blablapengpeng schrieb:

    #include <stdio.h> //Bibliothek stdio.h wird eingefügt für printf
    #include <conio.h> //Bibliothek stdio.h wird eingefügt für getch()
    
    #define druck printf //bennent printf in druck
    #define halten getch()//benennt getch() in halten
    
    int Hello(void);//Funktion : printf("Hello World")
    int Key(void);//Funktion :  printf("Press any Key")
    int Halten(void);//Funktion : getch()
    
    int main(void) //Hauptprogramm //Hier wird das vorkommen der Funktionen bestimmt
    {
        Hello();
        Hello();
        Key();
        Halten();
    	return 0; 
    }
    int Hello(void)//Funktion 1 wird zugewiesen
    {
        druck("Hello Word\a\n");
    }
    int Key(void)//Funktion 2 wird zugewiesen
    {
        druck("Press a key!");
    }
    int Halten(void)//Funktion 3 wird zugewiesen
    {
        halten;
    }
    

    wieso muss ich hier statt int void nehmen? und was bedeuted void überhaupt

    Hello(), Key() und Halten() liefern keinen Wert zurück, so dass dort void (=kein Rückgabewert) hin muss.

    #define druck printf //bennent printf in druck
    #define halten getch()//benennt getch() in halten
    

    Kommentar genau umgekehrt, du schreibst druck bzw. halten und deine Entwicklungsumgebung ersetzt dies.



  • was bedeutet zurück geliefert genau

    und wo wird hier was zurück geliefert?

    #include<stdio.h>  //Bibliothek für den Befehl printf
    #include<conio.h> //Bibliothek für den Befehl getch()
    
    int main(void)
    {
        int zahl1,zahl2,zahl3,zahl4;  //zahl1,2,3,4 werden deklariert
        zahl1=3*2; //zahl1 wird Initialisiert
        zahl2=zahl3=zahl1*2; //zahl2 wird Initialisiert
        zahl3=zahl3*2; //zahl3 wird Initialisiert
        zahl4=zahl3/4; //zahl4 wird Initialisiert
        zahl1=zahl2*zahl4+zahl3; //zahl1 wird neu Initialisiert
        printf("Egebnisse!!!!!!!!!!\n\n--------\nZahl1:%i\nZahl2:%i\nZahl3:%i\nZahl4:%i\n\n--------\a",zahl1,zahl2,zahl3,zahl4,zahl1); //zahl1 wird ausgegeben
        getch(); // Hält das Fenster offen bis zu einer betätigung der Tastatur
    }
    


  • main muss immer int zurück geben! Damit wird an das Betriebssystem signalisiert, ob das Programm erfolgreich war (return 0) oder nicht. In main musst du aber nicht unbedingt explizit ein return am Ende schreiben, dass wird bei main (und nur da) automatisch erledigt.

    Wenn du Linux/OSX/Unix benutzt, kannst du das ganz einfach abfragen

    $ cat > foo.c
    int main() { return 100; }
    $ gcc foo.c
    $ ./a.out
    $ echo $?
    100
    

    $? ist eine Umgebungsvariable, die den Rückgabewert enthält.



  • blablapengpeng schrieb:

    was bedeutet zurück geliefert genau

    und wo wird hier was zurück geliefert?

    #include<stdio.h>  //Bibliothek für den Befehl printf
    #include<conio.h> //Bibliothek für den Befehl getch()
    
    int main(void)
    {
        int zahl1,zahl2,zahl3,zahl4;  //zahl1,2,3,4 werden deklariert
        zahl1=3*2; //zahl1 wird Initialisiert
        zahl2=zahl3=zahl1*2; //zahl2 wird Initialisiert
        zahl3=zahl3*2; //zahl3 wird Initialisiert
        zahl4=zahl3/4; //zahl4 wird Initialisiert
        zahl1=zahl2*zahl4+zahl3; //zahl1 wird neu Initialisiert
        printf("Egebnisse!!!!!!!!!!\n\n--------\nZahl1:%i\nZahl2:%i\nZahl3:%i\nZahl4:%i\n\n--------\a",zahl1,zahl2,zahl3,zahl4,zahl1); //zahl1 wird ausgegeben
        getch(); // Hält das Fenster offen bis zu einer betätigung der Tastatur
    }
    

    Eine Funktion kann einen Wert (int, float, char, ...) zurückliefern, d.h. wenn du die Funktion aufrufst, findet dort etwas (sinnvolles) statt und ein Wert wird an die aufrufende Stelle zurückgegeben.

    Beispiel:

    int Summe(int a, int b)
    {
        return (a+b);
    }
    
    ...
    
    ergebnis = Summe(10,20);
    

    Hier werden der Funktion Summe() die beiden Zahlen 10 und 20 übergeben und die Funktion liefert die Summe der beiden zurück.


Anmelden zum Antworten