C'den C++'a geçiş zor mu?

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.
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.
C++'da nesne yönelimi kullanmanıza gerek yok, kullanımı da önerilmez zaten. Ama genel olarak zorlanmanız mümkün tabii.
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?
 

Technopat Haberler

Geri
Yukarı