Parameter
Argumente sind Namen von Werten, die einer Funktion durch einen Funktionsaufruf übergeben werden.Parameter sind Werte, die die Funktion erwartet zu empfangen.In einem Funktionsprototyp enthalten die Klammern nach dem Funktionsnamen vollständige Liste der der Parameter und ihre Typen Funktion.Parameterdeklarationen geben die Typen, die Größe und den Bezeichner der Werte an, die in den Parametern gespeichert werden.
Syntax
Funktionsdefinition:
Spezifizierer deklariertoptATTRIBUTE-folgendeoptDeklarator Deklaration ListeoptVerbundanweisungATTRIBUTE-folgendes /* */Microsoft-spezifische ist
Deklarator :
ZeigeroptDirekt DeklaratorDirektDeklarator: func deklarator/* */A
neuer DeklaratorDirekt Deklarator ( PARAMETER-TYPE Liste )/* */PARAMETER-TYPEListe: Parameterliste/* */A
ParameterlisteParameterliste ,…
Parameterliste:
PARAMETERDeklarationParameterlisten und Deklaration PARAMETER
PARAMETERDeklaration:
DeklarationSpezifizierer DeklaratorDeklarationSpezifizierer abstrakter Deklarator opt
Die PARAMETER-TYPE Liste ist eine Folge von durch Trennzeichen getrennten Parameterdeklarationen.Das Formular jedes Parameters in einer Parameterliste sieht wie folgt aus:
[register] type-specifier [declarator]
Die Funktionsparameter, die mit dem auto-Attribut deklariert sind, generieren einen Fehler.Die ID der Parameter werden im Funktionstext verwendet, um die Werte zuzugreifen, die an die Funktion übergeben werden.Sie können die Parameter in einem Prototyp, aber geben den Gültigkeitsbereich verlassen. die Namen am Ende der Deklaration.Daher können die gleiche Weise Parameternamen oder in der Funktionsdefinition zugewiesen werden.Diese Bezeichner können nicht im äußersten Block des Funktionsrumpfs neu definiert werden, aber sie können in den inneren geschachtelten, Blöcken neu definiert werden, als wenn die Parameterliste einschließender - Block ein.
Jeder Bezeichner in der PARAMETER-TYPE Liste muss als der entsprechende Typspezifizierer, wie in diesem Beispiel) vorangestellt werden:
void new( double x, double y, double z )
{
/* Function body here */
}
Wenn mindestens ein Parameter in der Parameterliste auftritt, kann die Liste mit einem Komma beenden, die drei Punkten (,…) folgt.Dieser Meldung, die so genannte „Ellipsen schreibweise,“ gibt eine variable Anzahl von Argumenten für die Funktion an.(Siehe Aufrufe mit einer variablen Anzahl von Argumenten .) Allerdings muss ein Aufruf der Funktion mindestens so viele Argumente verfügen sie vor dem letzten Komma Parameter vorhanden sind.
Wenn keine Argumente an die Funktion übergeben werden sollen, wird die Liste der Parameter durch das Schlüsselwort voidersetzt.Diese Verwendung von void ist von ihrer Verwendung als Typspezifizierer unterschiedlich.
Die Reihenfolge und Typ der Parameter, einschließlich jeder Verwendung mit den Auslassungspunkten schreibweise, müssen dieselben in allen Funktionsdeklarationen (falls vorhanden) und in der Funktionsdefinition sein.Die Typen der Argumente in üblichen arithmetische Konvertierungen müssen mit den Typen der entsprechenden Parameter Zuweisung-kompatibel sein.(Siehe Übliche arithmetische Konvertierungen Informationen über arithmetische Konvertierungen.) Die Argumente, die den Auslassungszeichen folgen, werden nicht überprüft.Ein Parameter kann eine beliebige Basis, Struktur, Union, Zeiger oder Arraytyp aufweisen.
Der Compiler führt die üblichen arithmetische Konvertierungen unabhängig für jeden Parameter und ggf. für jedes Argument aus.Nach der Konvertierung ist kein Parameter, intkürzer als Parameter verfügt und keinen float-Typ, es sei denn, der Parametertyp explizit als float im Prototyp angegeben wird.Dies bedeutet beispielsweise, das einen Parameter deklariert, da char hat denselben Effekt wie sie als intdeklariert wird.