Supponendo che devo usare C (no C ++ o compilatori orientati agli oggetti) e non ho allocazione dinamica della memoria, quali sono alcune tecniche che posso usare per implementare una classe o una buona approssimazione di una classe? È sempre una buona idea isolare la "classe" in un file separato? Supponiamo che possiamo preallocare la memoria assumendo un numero fisso di istanze o persino definendo il riferimento a ciascun oggetto come costante prima del tempo di compilazione. Sentiti libero di fare ipotesi su quale concetto di OOP dovrò implementare (varierà) e suggerisci il metodo migliore per ciascuno.
restrizioni:
- Devo usare C e non un OOP perché sto scrivendo il codice per un sistema incorporato e il compilatore e la base di codici preesistenti sono in C.
- Non esiste allocazione dinamica della memoria perché non abbiamo memoria sufficiente per presumere ragionevolmente che non finiremo se iniziamo ad allocarla dinamicamente.
- I compilatori con cui lavoriamo non hanno problemi con i puntatori a funzione
apr_
e GLib li prefigura g_
per creare uno spazio dei nomi) e altri fattori organizzativi senza OOP. Se intendi comunque ristrutturare l'app, prenderei in considerazione la possibilità di dedicare del tempo a trovare una struttura procedurale più gestibile.