Rule INT#030 - Argument is pointer or array


Fonksiyon bildirimi yapılırken parametre olarak int *ptr demekle int ptr[] demek arasında pratikte bir fark yoktur. Buna rağmen uygulamada kodu okuyan - kodun bakımını yapan açısından bir fark vardır. Aşağıda olduğu gibi Foo fonksiyonunu gören kişi bu fonksiyonun dizi adresi istediğini anlayacaktır.

parametre olarak dizi adresi isteyen fonksiyon
Aşağıda olduğu gibi Foo fonksiyonunu gören kişi ise bu fonksiyonun int * türünden bir adres istediğini anlayacaktır. Bu nedenle kod yazarken bu standarta dikkat etmek kod okuyan -bakımını yapan açısından faydalı olacaktır.

parametre olarak pointer isteyen fonksiyon

Fonsiyon çağrısı yapılırken aşağıdaki gibi dizi adresi isteyen bir fonksiyona o türden bir pointer gönderilmesi istenen bir durum değildir. Kod çalışmasında bir sıkıntı olmayacaktır ama kodun bakımını yapacaklar için dizi adresi isteyen fonksiyona dizi adresi pointer isteyen fonksiyona da pointer gönderilmesi daha doğru olacaktır.


Dizi adı da bir adres belirttiği halde yukarıda anlatıldığı gibi bir ayrıma gitmek daha anlaşılır kodlar yazılmasını sağlayacaktır.