Dengan asumsi saya harus menggunakan C (tidak ada C ++ atau penyusun berorientasi objek) dan saya tidak memiliki alokasi memori dinamis, teknik apa sajakah yang dapat saya gunakan untuk mengimplementasikan suatu kelas, atau perkiraan yang baik dari suatu kelas? Apakah selalu merupakan ide yang baik untuk mengisolasi "kelas" ke file yang terpisah? Asumsikan bahwa kita dapat melakukan pra-alokasi memori dengan mengasumsikan jumlah instance tetap, atau bahkan mendefinisikan referensi ke setiap objek sebagai konstanta sebelum waktu kompilasi. Jangan ragu untuk membuat asumsi tentang konsep OOP mana yang perlu saya terapkan (akan bervariasi) dan menyarankan metode terbaik untuk masing-masing.
Pembatasan:
- Saya harus menggunakan C dan bukan OOP karena saya menulis kode untuk sistem tertanam, dan kompiler dan basis kode yang sudah ada di C.
- Tidak ada alokasi memori dinamis karena kami tidak memiliki cukup memori untuk menganggap wajar kami tidak akan kehabisan jika kami mulai mengalokasikannya secara dinamis.
- Compiler yang bekerja dengan kami tidak memiliki masalah dengan pointer fungsi
apr_
dan GLib memberinya awalan g_
untuk membuat namespace) dan faktor pengorganisasian lainnya tanpa OOP. Jika Anda akan merestrukturisasi aplikasi, saya akan mempertimbangkan meluangkan waktu untuk mencoba membuat struktur prosedural yang lebih mudah dikelola.