Sprachkonzepte Preprozessor Operatoren Kontrollstrukturen Typen OOP Bibliotheken |
FunktionDieser Teil von ManderC ist noch unvollständig, die aufgeführten Inhalte sind nicht strukturiert, sondern nur Schnipsel, die später möglicherweise verwendet werden. Wenn man selbst eine Funktion schreiben möchte, so definiert man in C und C++ einen Namen, eine Auflistung von Parametern, einen Rückgabetyp und die Implementation der Funktion selbst. Der Name, die Parameter und der Rückgabetyp werden als In C und C++ wird ausführbarer Code in funktionale Einheiten verpackt, welche als Funktionen bezeichnet werden. Während in anderen Sprachen teilweise zwischen Prozeduren und Funktionen unterschieden wird, spricht man in C und C++ grundsätzlich stets von Funktionen. Dies aus folgendem Grund: Eine Prozedur unterscheidet sich von einer Funktion einzig darin, dass eine Prozedur keinen Wert zurückgibt. Da in C und C++ Funktionsaufrufe als Operator gelten, also eine Anweisung darstellt, die ausgewertet werden kann, müssen Funktionen genauso wie alle Werte typisiert werden. Eine Funktion wird stets als eine Einheit mit einem fest deklarierten Typ festgelegt. Prozeduren werden in C und C++ somit als Funktion mit dem Rückgabetyp Beim Aufruf einer Funktion wird der Compiler auf dem Stack einen Platz für einen möglichen Rückgabewert freigehalten. Die Grösse dieses Speichers ist für 32bit-Systeme stets 4 Byte, für 64bit-Systeme stets 8 Byte gross. Für komplexe Rückgabewerte wie beispielsweise ein long double oder ein ganzes Objekt ist dieser Platz zu klein, er reicht jedoch aus, um eine Adresse auf einen Platz mitzugeben, welcher von der aufrufenden Funktion vor Aufruf der Funktion reserviert wird. Versucht man trotzdem, den Wert zu verwenden, so wird der Compiler einen Fehler wie etwa den folgenden ausgeben: void value not ignored as it ought to be. Versucht man, in einer Prozedur einen Wert zurückzugeben, wird eine Warnung wie die folgende ausgegeben: return with a value, in function returning void. Dieser Teil von ManderC ist noch unvollständig, weitere Einträge folgen.
|