C ile Nesne Yaratmak
Evet kışkırtıcı bir başlık attım 🙂
Aslında yapacağımız olay bir structı nesne gibi kullanmak. Buna benzer bir kodu yıllar önce görmüştüm. O günden bu güne sürekli böyle bir şeyi nasıl yaparım diye araştırdım. Anca bugün çözebildim olayı 😉
Kodu aşağıda yorum satırıyla beraber veriyorum. Yorumlarda gerekli açıklamaları yaptım.
Bu yazıyla C-3PO nun ne lakası var diyebilirsiniz. C ile resim ararken karşıma bu çıktı, bende boş durmasın dedim 🙂
/*                                                                                                                                                             
 * Sınıfımızı yaratıyoruz                                                                                                                                      
 */
struct _myobject {
  // alt alanlar                                                                                                                                               
  int a, b;
  /*                                                                                                                                                           
   * Metod                                                                                                                                                     
   * Burada fonksiyon pointerı tanımlıyoruz                                                                                                                    
   */
  int (*add)(struct _myobject*);
};
// struct ön ekinden kurtuluyoruz                                                                                                                              
typedef struct _myobject MyObject;
/*                                                                                                                                                             
 * Asıl işi yapacak fonksiyonu tanımlıyoruz                                                                                                                    
 * MyObject structını parametre olarak alıyor                                                                                                                  
 */
int realAdd(MyObject* a) {
  return a->a + a->b;
}
int main ( void ) {
  /*                                                                                                                                                           
   * Nesnemizi oluşturuyoruz.                                                                                                                                  
   * add pointerına fonksiyonu atıyoruz                                                                                                                        
   */
  MyObject mo = {1, 2, realAdd};
  printf("A + B = %d\n", mo.add(&mo));
  return 0;
}
Kodun başına stdio.h headerını eklemekte fayda var. WP sıkıntı çıkarttığı için silmek zorunda kaldım. Kodun düzgün halini burada bulabilirsiniz.
Uzun bir aradan sonra temamı değiştirdim. Önceki temayı çok sevmiştim, hala da seviyorum fakat biraz sıkıldım ondan. Yazı alanı da küçük olunca vazgeçmek kolay oldu 🙂
Gece gece uyku tutmadı var olan bir programı kurcalamaya başladım. Amacım programın sitem çekmecesinden çalışabilir hale getirmekti. 
Daha önce birkaç kez yapmıştım, fakat her seferinde neler yaptığımı unutup acaba olmadı mı diye kuşkulanmıştım. En güzeli böyle bir yere yazıp gerektiğinde kopya çekmek 🙂