Structure-Chart nachbauen - Parameter und Aufruf Funktionen
-
Hallo zusammen,
ich bin momentan dabei ein C-Programm zu implementieren welches folgendes Structur-Chart umsetzen soll: https://www.imgur.com/a/dvut7
Das ist mein erstes Programm mit mehreren Funktionen, habt Nachsicht!
Bisher ist folgender Code zusammen gekommen:
#include <stdlib.h> #include <conio.h> #include <stdio.h> void f11(void); int f12(int iA); void f13(void); void f21(void); int f22(int iB); int f32(int iC); int iA, iB, iC; int main() { f11(); f12(iA); f13(); } void f11() { f21(); } void f21() { ; } int f12(iA) { f22(iB); return iF; } int f22(iB) { return iE; } int f32(iC) { return iD; } void f13() { ; }
Könnt ihr mir feedback geben? Würde man die Funktionen in der Reihenfolge definieren oder eher von links nach rechts?
Danke euch!
-
Natürlich muss in Funktion int f22(iB){} noch f32() aufgerufen werden!
-
breezy schrieb:
Könnt ihr mir feedback geben?
Keine globalen Variablen.
(vorletzte Zeile in der Aufgabe: iF ist eine lokale ...)Bei der Funktionsdefinition gehört auch der Typ in dei Parameterliste.
breezy schrieb:
Würde man die Funktionen in der Reihenfolge definieren oder eher von links nach rechts?
Alphabetisch (oder hier auch numerisch) sortiert.
Passt schon, so wie du es gemacht hast.
-
- conio.h ist kein C Standard
- void funktion(void) Funktionen machen keinen Sinn (weil sie u.a. globale Variablen bedingen...)
- stelle die Compilerwarnschwelle höchstmöglich
- Funktionsdefinitionen sollen immer genau dem zuvor definierten Prototyp entsprechen, also z.B. nichtint f12(int iA); ... int f12(iA) {}
-
Danke euch schon mal für die Antworten!
Ich hab das Programm nun abgeändert:
/** * * * * */ #include <stdlib.h> #include <conio.h> #include <stdio.h> int f11(void); int f12(int iA); int f13(void); int f21(void); int f22(int iB); int f32(int iC); int main() { f11(); f12(int iA); f13(); } int f11() { f21(); } int f21() { } int f12(int iA) { static int iF; f22(int iB); return iF; } int f22(int iB) { static int iE; f32(int iC); return iE; } int f32(int iC) { static int iD; return iD; } int f13() { }
Beim compilieren motzt er:
Line 22 Error C2059 syntax error: ')'
Line 22 Error C2198 'f32': too few arguments for call
Line 22 Error C2143 syntax error: missing ')'
Line 22 Error C2059 syntax error: ')'
Line 22 Error C2198 'f22': too few arguments for call
Line 22 Error C2143 syntax error: missing ')' before 'type'
Line 22 Error C2059 syntax error: ')'
Line 22 Error C2198 'f12': too few arguments for call
Line 22 Error C2143 syntax error: missing ')' before 'type'Too few arguments to call, habe ich was vergessen?
-
Line 22 Error C2059 syntax error: ')'
Line 22 Error C2198 'f32': too few arguments for call
Line 22 Error C2143 syntax error: missing ')'
Line 38 Error C2059 syntax error: ')'
Line 38 Error C2198 'f22': too few arguments for call
Line 38 Error C2143 syntax error: missing ')' before 'type'
Line 46 Error C2059 syntax error: ')'
Line 46 Error C2198 'f12': too few arguments for call
Line 46 Error C2143 syntax error: missing ')' before 'type'Hier mit korrekter Zeilenangabe
-
breezy schrieb:
Too few arguments to call, habe ich was vergessen?
Nein, du hast zu viel. Das kommt davon, wenn man mit Copy&Paste programmiert. Guck dir Zeile 22 noch mal genau an.
-
Warum hast du die lokalen Variablen als
static
definiert?