OO benzeri teknikleri kullanarak C orta gömülü bir uygulama üzerinde çalışıyorum. "Sınıflarım", kapsülleme, polimorfizm ve bağımlılık enjeksiyonunu taklit etmek için veri yapıları ve işlev işaretçileri yapılarını kullanan .h / .c modülleridir.
Şimdi, bir myModule_create(void)
fonksiyonun bir myModule_destroy(pointer)
muadili ile gelmesi beklenir . Ancak proje gömülüyor, gerçekçi bir şekilde başlatılan kaynaklar asla serbest bırakılmamalıdır.
Yani, 4 UART seri portum varsa ve gerekli pinleri ve ayarları ile 4 UART örneği oluşturursam, çalışma zamanında bir noktada UART # 2'yi yok etmek için kesinlikle hiçbir neden yoktur.
Peki YAGNI (buna ihtiyacınız olmayacak) prensibine göre yıkıcıları atlamalı mıyım? Bu bana çok garip geliyor ama onlar için bir fayda düşünemiyorum; kapatıldığında kaynaklar serbest bırakılır.
myModule_create(void)
fonksiyonunuz var? Kullanmayı beklediğiniz belirli örnekleri açıkta bıraktığınız arabirime kodlayabilirsiniz.