Udostępnij za pośrednictwem


Parametry

Argumenty to nazwy wartości przekazanych do funkcji przez wywołanie funkcji.Parametry to wartości, które funkcja spodziewa się otrzymać.W prototypie funkcji, nawiasy po nazwie funkcji zawierają pełną listę parametrów funkcji i ich typy.Deklaracje parametru określają typy, rozmiary i identyfikatory wartości przechowywanych w parametrach.

Składnia

  • definicja-funkcji:
    specyfikatory-deklaracji opcsekwencja-atrybutów opcdeklarator listy-deklaracji opcinstrukcja-złożona

    /* sekwencja-atrybutów jest specyficzna dla firmy Microsoft */

  • deklarator :
    wskaźnik opcbezpośredni-deklarator

  • bezpośredni deklarator:/* deklarator funkcji */
    bezpośredni-deklarator ( lista-typów-parametrów )    /* deklarator nowego-stylu */

  • lista-typów-parametrów: /* lista parametrów */
    lista-parametrów

    lista-parametrów ,...

  • lista-parametrów:
    deklaracja-parametru

    lista-parametrów , deklaracja-parametru

  • deklaracja-parametru:
    Deklarator specyfikatorów-deklaracji

    abstrakcyjny deklarator specyfikatorów-deklaracji opc

Lista typów parametrów jest sekwencją deklaracji parametrów rozdzielonych przecinkami.Forma każdego parametru na liście parametrów wygląda następująco:

[register]  type-specifier [declarator] 

Parametry funkcji zadeklarowane za pomocą atrybutu auto generują błędy.Identyfikatory parametrów są używane w treści funkcji do odwoływania się do wartości przekazanych do funkcji.Można nazwać parametry w prototypie, ale nazwy wykraczają poza zakres na końcu deklaracji.Dlatego nazwy parametrów mogą być przypisane w taki sam lub w inny sposób w definicji funkcji.Identyfikatorów tych nie można ponownie zdefiniować w najbardziej zewnętrznym bloku treści funkcji, ale można je ponownie zdefiniować w wewnętrznych, zagnieżdżonych blokach tak, jakby lista parametrów była otaczającym blokiem.

Każdy identyfikator na liście typów-parametrów musi być poprzedzony przez odpowiedni typ specyfikatora, jak pokazano w poniższym przykładzie:

void new( double x, double y, double z )
{
    /* Function body here */
}

Jeśli na liście parametrów wystąpi co najmniej jeden parametr, listę można zakończyć przecinkiem, po którym następują trzy kropki (, ...).Konstrukcja ta, nazywana "notacją wielokropka" wskazuje zmienną liczbę argumentów funkcji. (Zobacz Wywołania z różną liczbą argumentów, aby uzyskać więcej informacji.) Jednak, wywołanie funkcji musi mieć co najmniej tyle argumentów, ile jest parametrów przed ostatnim przecinkiem.

Jeśli żadne argumenty nie są przekazywane do funkcji, lista parametrów jest zamieniana na słowo kluczowe void.Takie wykorzystanie void różni się od jego wykorzystania jako specyfikatora typu.

Kolejność i typ parametrów, w tym wykorzystanie notacji wielokropka, musi być takie same we wszystkich deklaracjach funkcji (jeśli istnieją) oraz w definicji funkcji.Typy argumentów po zwykłych arytmetycznych konwersjach muszą być zgodne pod względem przypisań z typami odpowiadających im parametrów. (Zobacz Zwykłe konwersje arytmetyczne, aby uzyskać więcej informacji dotyczących konwersji arytmetycznych.) Argumenty po wielokropku nie są sprawdzane.Parametr może mieć dowolny typ podstawowy, związku, struktury, wskaźnika lub tablicy.

Kompilator wykonuje zwykłe arytmetyczne konwersje, niezależnie dla każdego parametru i każdego z argumentów, w razie potrzeby.Po dokonaniu konwersji, żaden parametr nie jest krótszy niż int i żaden parametr nie ma typu float, chyba że typ parametru jest jawnie określony jako float w prototypie.Oznacza to, na przykład, że zadeklarowanie parametru jako char ma taki sam skutek jak zadeklarowanie go jako int.

Zobacz też

Informacje

Definicje funkcji języka C