lokale Funktion in einer globalen Funktion definieren?
-
Hi Leute,
ich habe eine Frage, ob man eine lokale Funktion in einer globalen Funktion definiert.z. B:
File : Minus.c:
int Minus (int a , int b ) { int c =0; c = a - b; return c; }
int Plus ( int d, int l) { return d+c; }
Wie kann Ich Funktion Plus lokal in Funktion Minus definieren und deklarieren.
-
Gar nicht. Das wird in C nicht unterstützt
.
-
In C kann man keine Funktionen in anderen Funktionen definieren oder deklarieren.
C wird zwar allgemein zu den blockstrukturierten Sprachen dazu gezählt, ist aber
streng technisch gesehen keine blockstrukturierte Sprache, eben aus dem Grund,
weil man keine Funktionen in anderen Funktionen deklarieren und definieren kann.
Halt "nur" eine strukturierte Programmiersprache.Aber ehrkich gesagt, habe ich das auch noch nicht vermisst
Das, was geht, sind einzelne Codeblocks wie if(..) {} usw.
-
Das ganze Geht aber ungefähr so in C++, zumindest, wenn man Klassen verwendet
Rechnen ist dann Global, Plus/Minus kann nur innerhalb der Klasse verwendet werden.
#include <cstdlib> #include <iostream> using namespace std; #define MODUS_PLUS 1 #define MODUS_MINUS 2 class Rechnen { public: int rechne(int modus, int a, int b) { if(modus==MODUS_PLUS) return plus(a,b); else if(modus==MODUS_MINUS) return minus(a,b); else return -1; }; protected: int plus(int a, int b) { return a+b; }; int minus(int a, int b) { return a-b; }; }; int main(int argc, char *argv[]) { Rechnen MeinRechner; cout << MeinRechner.rechne(MODUS_PLUS, 3, 5); // out: 8 cout << MeinRechner.rechne(MODUS_MINUS, 3, 5); // out: -2 return 0; }