2010-02-24 23 views
8

Eventuali duplicati:
Why artificially limit your code to C?Perché qualcuno dovrebbe usare C anziché C++?

Ho iniziato con l'apprendimento C, ma poi saltò dritto in C++ semplicemente perché supporta OO ed è stato necessario anche per il lavoro successivo. Tuttavia, alcune aziende insistono nell'impiegare persone con un'esperienza C particolarmente forte - e ho notato che ciò vale soprattutto per le società di sviluppo di driver hardware.

+0

http://stackoverflow.com/questions/649789/why-artificially-limit-your-code-to-c –

+16

Perché qualcuno dovrebbe usare un coltello invece di un robot da cucina? –

+0

@Neil Butterworth Cool, grazie. –

risposta

3

Potrebbe essere semplicemente che non hanno un compilatore C++ per la piattaforma su cui stanno lavorando con ... Personalmente avrei sempre usare C++ a preferenza di C.

3

C è molto più portabile - sotto l'attuale livello di standardizzazione del C++, semplicemente non può essere utilizzato quando la portabilità è importante. È anche molto difficile che il codice C++ sia integrato (in modo affidabile e portatile) in un ambiente C.

4

C la gestione delle stringhe è molto diversa dal codice di stringa tipico C++. Certamente non vorrei alcuna stringa C++ vicino ai miei driver!

In particolare, nel C++ buono e moderno non è necessario capire i puntatori e gestire i buffer a basso livello; ma queste sono abilità basilari e cruciali nel codice del driver di dispositivo.

Sì, è possibile scrivere buoni driver in C++; ma quel C++ sembrerebbe davvero C con alcune caratteristiche extra. La maggior parte della libreria C++ non ha spazio nel Deviceland.

1

Un sacco di sistemi embedded come microcontrollori, PLC, ecc. Usano C e non C++ perché non hanno bisogno di avere classi solo un loop gigante con alcune funzioni sparse. Niente di eccezionale, ma abbastanza per portare a termine il lavoro in un linguaggio di livello superiore. Poiché C è più familiare alle persone rispetto all'assemblaggio, funziona bene nel ~ 98% dei casi.

-1

Penso che la ragione sia abbastanza semplice, molte aziende vogliono un codice leggibile efficiente. C è un linguaggio abbastanza facile da comprendere e comprendere, e per molti usi non c'è motivo di complicare lo sviluppo e la continuità del codice aggiungendo concetti completamente nuovi (classi, polimorfismo, ereditarietà, ecc.) Che i linguaggi OO rendono possibile ma potrebbero non essere necessari.

Problemi correlati