Aracılığıyla paylaş


Bağımsız değişkenler

Bu formu bir işlev çağrısı içinde bağımsız değişkenleri vardır:

expression ( expression-list <SUB>opt</SUB> )  /* Function call */

Bir işlev çağrısı içinde ifade listesi listesi (virgülle ayrılmış) ifade yer almaktadır.Bu ikinci ifadeler işlevine geçirilen bağımsız değişken değerlerdir.Hiçbir bağımsız değişken, işlev alır, ifade listesi anahtar sözcüğünü içermesi gereken void.

Bağımsız değişken değeri temel kullanımı ile yapısı, birleşim veya işaretçi türü olabilir.Tüm bağımsız değişkenler değerine göre iletilir.Buna karşılık gelen parametrenin bağımsız değişkenin bir kopyası atanır.İşleve geçirilen bağımsız değişken gerçek bellek konumunu bilmez.İşlev, ilk olarak kendisinden türetilmiş değişken etkilemeden bu kopyayı kullanır.

Diziler veya işlevleri bağımsız değişkeni geçirilemez rağmen bu öğeler için işaretçiler iletebilirsiniz.İşaretçiler başvuruyla bir değere erişmek bir işlev için bir yol sağlar.Değişken bir imleç değişken adresini tutan bu yana işlevi değişken değeri erişmek için bu adresi kullanabilirsiniz.Diziler ve işlevleri bağımsız değişkeni geçirilemez olsa diziler ve İşlevler, erişmek bir işlev işaretçisi bağımsız izin verir.

Bağımsız değişkenler değerlendirilme sırasını farklı derleyiciler ve farklı en iyileştirme düzeylerini altında değişebilir.İşlev girilmeden önce ancak bağımsız ve herhangi bir yan etkileri tamamen değerlendirilir.Bkz: yan etkileri yan etkileri hakkında bilgi için.

İfade listesi bir işlev çağrısı olarak değerlendirilir ve işlev çağrısı içinde her bağımsız değişken hakkında her zamanki gibi aritmetik dönüşümleri gerçekleştirilir.Bir prototip varsa, ortaya çıkan bağımsız değişken türü için karşılık gelen parametrenin prototip 's karşılaştırılır.Bunlar eşleşmiyorsa, bir dönüştürme işlemi veya tanılama iletisi yayınlanmaz.Parametreleri de her zamanki gibi aritmetik dönüşümleri meydana.

İfadelerde sayısı ifade listesi bağımsız değişken bir dizi işlevin prototipi ya da tanımı açıkça belirtmediği sürece parametre sayısı eşleşmelidir.Bu durumda, derleyici parametre listesi türü adları olarak orada birçok bağımsız değişkenler olarak denetler ve bunları, gerekirse, yukarıda açıklandığı gibi dönüştürür.Bkz: çağrıları bağımsız değişken numarası ile daha fazla bilgi için.

Prototip 's parametre listesi yalnızca anahtar sözcük içeriyorsa, void, derleyici işlev çağrısı içinde sıfır bağımsız değişkenleri ve sıfır parametreleri tanımında bekler.Herhangi bir bağımsız değişkeni bulursa tanılama iletisi verilir.

Örnek

Bu örnek, işaretçiler bağımsız değişken olarak kullanır:

int main()
{
    /* Function prototype */

    void swap( int *num1, int *num2 );
    int x, y;
    .
    .
    .
    swap( &x, &y );  /* Function call */
}

/* Function definition */

void swap( int *num1, int *num2 )
{
    int t;

    t = *num1;
    *num1 = *num2;
    *num2 = t;
}

Bu örnekte, swap işlevi içinde bildirilmiş main sırasıyla tanımlayıcıları tarafından temsil edilen iki bağımsız olmasını num1 ve num2, her imleçlerdir int değerler.Parametre num1 ve num2 prototip stil tanımı da bildirilen işaretçiler olarak int değerlerini yazın.

İşlev çağrısı

swap( &x, &y )

adresi x depolanan num1 ve adresini y depolanan num2.Şimdi iki ad ya da "diğer adlar," için aynı konuma mevcut.References to *num1 and *num2 in swap are effectively references to x and y in main.Atamalar içinde swap gerçekten içeriğini exchange x ve y.Bu nedenle, no return ifade gerekli.

Derleyici tür bağımsız denetimi gerçekleştiren swap çünkü, prototip swap her parametre için bir bağımsız değişken türleri içerir.Prototype ve tanım parantez içinde tanımlayıcıları aynı olabilir ya da farklı.Önemli olan bağımsız değişken türü parametre listeleri prototype ve tanım uyacak emin olur.

Ayrıca bkz.

Kavramlar

İşlev çağrıları