Mögliches Duplikat:
Funktionsüberladung in C
Entschuldigung, wenn dies ein Dup ist, aber wenn ja, kann ich es nicht finden.
Können Sie in C mehrere Funktionen mit demselben Funktionsnamen, aber mit unterschiedlichen Parametern definieren? Ich komme aus einem C#-Hintergrund. In C# ist der folgende Code völlig legal.
//Unsere erste Funktion
int MyFunction()
{
//Code here
return i;
}
int MyFunction(int passAParameter)
{
// Code using passAParameter
return i;
}
In meinem speziellen Fall möchte ich eine Funktion erstellen, die einen optionalen Parameter (das ist ein Int) am Ende der Parameterliste hat. Ist das möglich?
Nein, das Überladen von sir-Funktionen ist in C nicht erlaubt, aber in C++ ist es erlaubt.
– Khaled Alshaya
30. September 2011 um 18:44 Uhr
Das nennt man Funktionsüberladung. Schauen Sie hier: stackoverflow.com/questions/479207/function-overloading-in-c
– Matjaz Muhic
30. September 2011 um 18:44 Uhr
Während die ähnliche Frage im Link einige Hinweise auf eine Art Überladung enthalten könnte, sollten Sie sich wahrscheinlich davon fernhalten. Im Gegensatz zu C# ist das Überladen in C nicht idiomatisch und es ist durchaus akzeptabel, zwei Funktionen zu erstellen
MyFunction
undMyFunctionWithParameter
– Umarmung
30. September 2011 um 18:53 Uhr
Da dies geschlossen ist, kann ich Ihnen keine “Antwort” geben, sondern muss dies in einem Kommentar hinterlassen. Der Sonderfall optionaler Parameter ist mit Makrotricks möglich. Schau mal in P99, p99.gforge.inria.fr
– Jens Gustedt
30. September 2011 um 19:47 Uhr