Dynamics
Kilopat
Daha fazla
- Cinsiyet
- Erkek
C++ function overload özellği nedeniyle name mangling yapar, yani fonksiyonların adını yönetir. C'de böyle bir şey olmadığı için fonksiyon adları değiştirilmez. C++'dan C kodu çağırırken derleyicinin name mangling yapmaması için extern C kullanmak durumundayız aksi halde fonksiyon name mangling'e dahil olur ve yanlış fonksiyon çağrısı işlenir.Gömülü sistemler de bu kısım sıkıntı mesela. STM32 ile CMSIS paketi kullanarak çalışırken Interrupt fonksiyonları tanımlı geliyor. Eğer bu fonksiyonları C++ ile kullanırsanız fonksiyonu extern "C" {....} içerisine yazmanız gerekiyor. Yoksa Interrupt fonksiyonu her çalıştığında Hard_Fault_Handler denilen fonksiyona atılıyorsunuz (bu fonksiyonun içinde sadece while(1) var.) Derleyici aşırı yüklemeden emin olamıyor sanırım.
Eğer fonksiyonel programlamayla işinizi halledebiliyorsanız OOP size yük oluşturur doğru ancak C++'da OOP kullanımı önerilmez kısmı yanlış, kim önermiyormuş? C++ Hater'i Torvalds falan mı önermiyor?C++'da nesne yönelimi kullanmanıza gerek yok, kullanımı da önerilmez zaten. Ama genel olarak zorlanmanız mümkün tabii.