Prima di tutto, questa domanda va oltre il mio esempio (non voglio che questo sia troppo localizzato o migrato allo Stack Overflow), ma mi sono imbattuto in questo quando ho pensato a qualcosa che volevo provare in C così ho pensato che io ' d utilizzalo come esempio.
Quindi la mia idea è di creare una lista concatenata generica in C e l'ho iniziata la scorsa notte e sta procedendo piuttosto bene per essere nuova in C. Il problema che ho incontrato è tipo casting e mi porta a questa domanda: come molto lavoro dovrebbe un progettista di biblioteca si aspetta che l'utente faccia quando usa la libreria?
Se segui il mio esempio, al momento, non eseguo alcun cast e restituisco un oggetto (che è un typedef di void *). È ragionevole assicurarsi che l'utente finale tenga traccia dei propri tipi o che il progettista della biblioteca si assicuri che l'elenco sia sicuro per il tipo (penso di avere un'idea generale su come implementarlo per almeno i tipi di dati integrati) ? È ragionevole, quando si progetta una libreria di aspettarsi una certa quantità di lavoro da parte degli utenti finali per utilizzare la libreria o dovrebbe essere minimizzata il più possibile? Ci sono fattori che influenzano questa decisione, come il linguaggio?