C programlama; Typedef, Struct, Pointer

Gömülü sistemlerde projelerine başlamadan önce C programlama da özellikle struct, typedef, pointerlar konusunun özellikle benimsenmesi gerekmektedir. Bu yazıda struct, typedef ve pointer konusudan bahsedeceğiz. Ayrıyetten fonksiyon göstericileri konusunu ele alacağız.

Konu boyunca gerçeklemesi yapılan kodu derlemek istediğiniz de online C compiler kullanmanız yeterli olacaktır.

1-)Typedef

İlk ele alacağımız kısım “typedef” kelimesidir. “typedef”  kelimesini kullandığımızda, “struct”  için yeni değişken tanımlarken struct ifadesini tekrardan kullanma ihtiyacı duymayız.Aşağıdaki iki kod bu duruma örnektir.

Yukarıda tanımlı yapımızın özelliklerine sahip değişken tanımladığımız da “struct” kelimesini kullanma ihtiyacı duyduk.

Ama eğer “typedef” kelimesini kullandığımız zaman böyle bir ihtiyaca gereksinim kalmayacaktır. Aşağıdaki kod bloğu buna örnektir.

2-)Yapının birimlerine pointerlarla erişme

“Pointer”, “struct”ların üyesi olabilir. Aşağıdaki “struct” iki üyeden oluşmaktadır. (->) arrow operatörü ile (.) nokta operatörüyle yapı içerisindeki üyelere erişilebilir.

Aşağıdaki kod bloğu ile yapı içerisideki üyeye değer atılmaktadır.

& operatörü

Aşağıdaki örnekte belirtildiği gibi logc yapısının üyelerinin adresini *lojik pointer’ı aracılığıyla bulunduğu adresini işaret edeceğiz.

Şimdi printf komutu ile yukarıda ele aldığımız değer atama ve adres gösterminin çıktısı alalım.

 

3-Struct’ların Fonksiyonlarda Kullanımı

C programlama da Struct’lar da argüman olarak kullanılabilir.Struct’ların fonksiyonlar da kullanımına ait kod blogu yukarıdaki tanımı yapılan kod blogları birlikte aşağıda verilmiştir.Fonksiyon değer döndürmeli olarak kullanılmıştır.

Komple kodun derlenmesi sonucu oluşan program çıktısı aşağıdaki gibidir.

4-Fonksiyon Pointer’lar (Fonksiyon Göstericileri)

Fonksiyon Göstericileri,fonksiyonun adresini saklamak için kullanılmaktadır.Yukaraki örneklerde pointer’lar değişkenler  (variable) adresini saklamak için kullanıldı.

Aşağıdaki örnekte int tipinde parametre alan fonksiyon göstericisi tanımlanmıştır.sonra fonksiyonun toplama ve baski fonksiyonlarının adresi &ampresan operatörüyle ptr ve p isimli fonksiyon göstericilerine atılmıştır.

Fonksiyon pointer gösterimi void (*pointer adı)(parametre tipi); şeklinde olur.

 

Bu yazı hakkında ne düşünüyorsun ?
  • Gereksiz 
  • Normal 
  • Faydalı 
  • Müthiş 
Sidar ATABEY

About Sidar ATABEY

Elektrik-Elektronik Mühendisi. Makine Mühendisliğinde yan dal programını tamamladı. 1 sene boyunca Erasmus Programı kapsamında Polonya Silesian University of Technology'de eğitim gördü.

View all posts by Sidar ATABEY →