Dizi Öznitelikleri

C dilinde diziler ve işaretçiler arasında yakın bir ilişki vardır. Bir işleve parametre olarak geçirildiğinde, dizi adı, aşağıdaki örnekte gösterildiği gibi dizinin ilk öğesinin işaretçisi olarak kabul edilir:

/* fragment */
extern void f1(char * p1);

void main(void)
{
    char chArray[MAXSIZE];

    fLocal1(chArray);
}

Yerel bir çağrıda, bellekte gezinmek ve diğer adreslerin içeriğini incelemek için işaretçi parametresini kullanabilirsiniz:

/* dump memory (fragment) */
void fLocal1(char * pch1)
{
    int i;

    for (i = 0; i < MAXSIZE; i++)
       printf("%c ", *pch1++);
}

İstemci bir işaretçiyi uzak bir yordama geçirdiğinde, istemci saplaması hem işaretçiyi hem de işaret edilen verileri iletir. İşaretçi ilgili verilerle kısıtlanmadığı sürece, istemcinin tüm belleği her uzak çağrıyla iletilmelidir. MIDL, arabirim tanımında güçlü yazma işlemi zorunlu kılarak istemci saplama işlemini belirtilen işaretçiye karşılık gelen verilerle sınırlar.

Dizinin boyutu ve uzak bilgisayara iletilen dizi öğeleri aralığı sabit veya değişken olabilir. Bu değerler değişken olduğunda ve bu nedenle çalışma zamanında belirlendiğinde, kaç dizi öğesinin iletileceğini belirtmek için IDL dosyasındaki öznitelikleri kullanmanız gerekir. Aşağıdaki MIDL öznitelikleri dizi sınırlarını destekler.

Öznitelik Açıklama Temerrüt
[ first_is] İletilen ilk dizi öğesinin dizini. 0
[ last_is] İletilen son dizi öğesinin dizini. -
[ length_is] İletilen dizi öğelerinin toplam sayısı. -
[ max_is] En yüksek geçerli dizi dizini değeri. -
[ min_is] En düşük geçerli dizi dizini değeri. 0
[ size_is] Dizi için ayrılan dizi öğelerinin toplam sayısı. -

 

Not

min_is özniteliği RPC'de uygulanmaz. En düşük dizi dizini her zaman sıfır olarak değerlendirilir.