Original geschrieben von hunter
Also status soll ja wirklich nur zwei Zustände annehmen
Ja,darum wäre es besser gewesen,gleich status als enum status zu deklarrieren und nicht als int.
int status weg zu lassen und nur enum status zu schreiben gibt eine Fehlermeldung.
Wenn du int status rausnimmst,mußt du dafür das rein packen.
Code:
enum status {OUT,IN};//Der Datentyp
enum status status = OUT;//Dein status Variable.
Also könnte man nun OUT und IN jeder Variable zuweisen, oder ? Aber wiso dann eine Instanz status erzeugen ?
IN und OUT sind einfach zwei int Konstanten.
Man hätte sie auch einfach als Makros definieren können.
Code:
#define OUT 0
#define IN 1
die enum Variante ist aber besser.
So und irgendeine Variable soll ja zur Laufzeit wechselweise entweder OUT oder IN enthalten.
Also mußt du eine Variable haben,die int Werte speichern kann,daher wurde int status deklarriert.
Aber man kann (wie bereits gesagt) auch ein Variable vom Typ enum status deklarrieren (anstatt int status).Da sieht jeder gleich,"Aha,dieses Vairable soll nur die Werte OUT und IN haben können".
Also "int main" braucht man später mal, weil man diese main Anweisung dann auch von anderen Anweisungen aus aufrufen könnte, was man zur Zeit nicht braucht, es didaktisch aber sinnvoll ist ?
Nein,es ist egal,ob man das Programm von einem anderen Programm ausführt,und dann den Rückgabewert braucht.
Am Ende deines Programms steht (wird vom Compiler generiert):
exit(main());
also der Returnwert von main wird an exit übergeben.
Da kommen nur Nullen raus. Siehst du vieleicht was hier falsch ist, ich komm zur Zeit irgendwie nicht dahinter ?
Du setzt in funktion p auf 0,und multiplizierst immer irgendwas anderes dran,0 mal irgendwas bleibt aber 0.
Lesezeichen