2009-08-19 16 views
19

Sono principalmente un programmatore C# /. NET, ma lo hobby project che sto per assumere riguarderà la codifica in c.Che aspetto ha un codice c buono e moderno?

So che esiste un sacco di codice c, ma è molto difficile separare un progetto c ben strutturato da un progetto mal strutturato se non si "cresce" con il linguaggio. Qualcuno può indicarmi un nuovo, non banale (ma non enorme) progetto che è considerato un buon esempio di come strutturare il codice c?

Modifica

Se non riesci a trovare un progetto, si sentono liberi di discutere a parole come si pensa un progetto c dovrebbe essere strutturato.

risposta

14

Dave Hanson C Interfaces and Implementations è un molto ben artigianale libreria di circa 7000 righe di codice. Il libro è fantastico se te lo puoi permettere.

L'implementazione del linguaggio e le librerie di programmazione Lua è di circa 17.000 linee di codice C ed è molto ben fatto, ma piuttosto sofisticato in luoghi — compilatori e netturbini non sono così facili da capire senza sfondo in questi campi. Ma il codice è ben progettato.

Git è oltre 125.000 righe di codice. Non posso raccomandare a nessuno di studiarlo come un esempio di come programmare il codice C. Solo il design e le interfacce pubbliche, per non parlare delle implementazioni, sono difficili da capire — che è il motivo per cui ci sono così tanti tutorial git.

+0

+1 per Lua. Sono rimasto piacevolmente sorpreso quando ho dato un'occhiata sotto il cofano per vedere se sarebbe stato accettabile per le prestazioni e la qualità per un progetto software embedded in cui mi trovavo. – patros

+1

Git ha uno stile e una struttura coerenti, quindi è un buon materiale da apprendere. Non devi preparare ogni riga di esso! –

+0

@Norman sembra che il libro sia disponibile su Safari. Devo averlo saltato perché ha 13 anni (presumibilmente non sarebbe un "codice moderno"), ma controllerò la tua raccomandazione; Grazie! –

3

Questo è completamente aneddotico, ma ho sentito che il progetto SQLite è considerato un buon codice.

+0

È una buona API almeno :) – Skurmedel

5

Partenza codice sorgente git: http://github.com/git/git/tree/master

+8

125.000 righe di codice per un nuovo programmatore C? Sei sicuro? –

+4

Riguarda la struttura e lo stile. Non devi leggere ogni riga però. –

6

considero IO language implementazione di Steve Dekorte di essere un buon esempio per la pulizia e pragmatico moderna C.

+0

Sono d'accordo, è davvero un bel codice. Mi piace e posso capirlo ;-) – Friedrich

1

Il libro successivo (con esempi di codice) potrebbe facilitare il tuo paradigma cambia un po ':

Stephen Kochan

Programmazione in C, terza edizione

http://www.kochan-wood.com

1

Il progetto SVN è interamente scritto in C ed è ben mantenuto: in stile coerente, buoni commenti, basso odore di codice. Raccomando perusing it.

Problemi correlati