Penso che le cose più importanti da sapere riguardo a C siano le differenze tra C e C ++. È probabile vedere un po 'di codice che ha un certo stile C in esso ad un certo punto, e non deve essere confusa quando si vedono le cose come malloc
, free
, printf
, fopen
, o fclose
. Dovresti anche sapere come questi sono simili e come sono diversi dalle loro controparti C ++.
Si dovrebbe anche sapere che <<
e >>
sei operatori di spostamento a destra ea sinistra, non inserimento operatori. In C ++, dove è possibile sovraccaricare gli operatori, questi sono stati sovraccaricati per eseguire l'inserimento di flussi e cose simili, ma vengono comunque utilizzati per spostare numeri interi.
Assicurati di aver compreso tutte le funzionalità di base di C ++ che non sono in C. Se leggi abbastanza stackoverflow.com avrai visto molte domande che coinvolgono le differenze nelle lingue e le loro incomprensioni.
Dovresti anche familiarizzare con il preprocessore C, che è quasi lo stesso (e spesso lo stesso programma) del preprocessore C ++. Sapere come usarlo ti aiuterà in C ++, ma è molto più usato in C.
Una cosa grande che è difficile da affrontare in C che C ++ ha sono i distruttori. Queste cose possono essere chiamate ovunque, occupandosi della liberazione delle risorse, ma in C devi fare tutto ciò in modo più esplicito. Questo è facile per i programmatori C ++ di dimenticare.
Per quanto riguarda le interviste, se qualcuno ti chiede di scrivere codice per qualche algoritmo generale in C e fai qualcosa del tipo:
struct foo {
int a;
void * b;
};
foo x; // in C++ this would work, but in C it would fail because struct names aren't in the
// type name table unless you put them there with typedef
Non penso che decideranno che non sai cosa stai facendo perché non l'hai fatto:
struct foo x;
E a loro non dovrebbe importare se hai usato a cout
meno che ciò che stanno cercando di farti mostrare non sia la tua capacità di gestire input e output, che il C ++ rende più facile per i casi comuni.
Se ti trovi nella posizione di essere intervistato per un lavoro che richiede C, dovresti essere in anticipo sulla tua mancanza di conoscenza di C al di fuori della sua sovrapposizione con C ++. Probabilmente capiranno che un buon programmatore dovrebbe essere in grado di passare abbastanza rapidamente da C a C ++.
Detto questo, C non è un linguaggio così grande. La libreria standard è molto più piccola di quella di C ++ e non è un grosso problema familiarizzare con i suoi pezzi più comuni, quindi non può davvero far male a impararla.