Background / Scenario
Ho iniziato a scrivere un'applicazione CLI esclusivamente in C (il mio primo programma C o C ++ corretto che non era "Hello World" o una sua variante). Verso metà strada stavo lavorando con "stringhe" di input dell'utente (array di caratteri) e ho scoperto l'oggetto streamer di stringhe C ++. Ho visto che potevo salvare il codice usando questi, quindi li ho usati attraverso l'applicazione. Ciò significa che ho modificato l'estensione del file in .cpp e ora compilo l'app g++
invece di gcc
. Quindi, basandomi su questo, direi che l'applicazione è ora tecnicamente un'applicazione C ++ (sebbene il 90% + del codice sia scritto in quello che chiamerei C, dato che c'è un sacco di incroci tra le due lingue data la mia esperienza limitata di il due). È un singolo file .cpp lungo circa 900 righe.
Fattori importanti
Voglio che il programma sia gratuito (come in denaro) e liberamente distribuibile e utilizzabile da tutti. La mia preoccupazione è che qualcuno guarderà il codice e penserà qualcosa sull'effetto di:
Oh guarda la codifica, è terribile, questo programma non può aiutarmi
Quando potenzialmente potrebbe! Un'altra questione è l'efficienza del codice (è un programma per testare la connettività Ethernet). Non dovrebbero esserci parti del codice così inefficienti da ostacolare gravemente le prestazioni dell'applicazione o del suo output. Tuttavia, penso che sia una domanda per Stack Overflow quando si chiede aiuto con funzioni, metodi, chiamate a oggetti specifici, ecc.
La mia domanda
Avere (secondo me) mescolato C e C ++ dove forse non avrei dovuto. Dovrei cercare di riscrivere tutto in C ++ (con questo, intendo implementare più oggetti e metodi C ++ in cui forse ho codificato qualcosa in uno stile C che può essere condensato usando le nuove tecniche C ++), o rimuovere l'uso di oggetti streamer stringa e riportare tutto "indietro" al codice C? C'è un approccio corretto qui? Mi sono perso e ho bisogno di una guida su come mantenere questa applicazione "buona" agli occhi delle masse, così la useranno e ne trarranno beneficio.
Il codice - Aggiornamento
Ecco un link al codice. Sono circa il 40% dei commenti, commento quasi ogni riga finché non mi sento più fluente. Nella copia a cui mi sono collegato, ho rimosso praticamente tutti i commenti. Spero che questo non lo renda troppo difficile da leggere. Spero comunque che nessuno dovrebbe aver bisogno di capirlo appieno. Se ho commesso errori di progettazione fatali, spero che debbano essere facilmente identificabili. Dovrei anche menzionare, sto scrivendo un paio di desktop e laptop Ubuntu. Non intendo trasferire il codice su altri sistemi operativi.
LICENSE
file. Potresti ricevere un feedback interessante.