Je pense que les choses les plus importantes à savoir concernant C sont les différences entre C et C ++. Vous verrez probablement un code qui a un certain style C à un moment donné, et vous ne devriez pas être confus quand vous voyez des choses comme malloc
, free
, printf
, fopen
ou fclose
. Vous devez également savoir en quoi ils sont similaires et en quoi ils diffèrent de leurs homologues C ++.
Vous devez également savoir que <<
et >>
sont des opérateurs de décalage à gauche et à droite, pas insertion opérateurs. En C ++, où vous pouvez surcharger les opérateurs, ceux-ci ont été surchargés pour effectuer l'insertion de flux et des choses similaires, mais ils sont toujours utilisés pour déplacer des entiers.
Assurez-vous de comprendre toutes les fonctionnalités de base du C ++ qui ne sont pas en C. Si vous lisez suffisamment stackoverflow.com, vous aurez vu de nombreuses questions qui impliquent les différences dans les langages et les incompréhensions des gens à leur sujet.
Vous devez également vous familiariser avec le préprocesseur C, qui est presque le même que (et souvent le même programme que) le préprocesseur C ++. Savoir comment l'utiliser vous aidera en C ++, mais il est beaucoup plus utilisé en C.
Une grande chose difficile à gérer en C que possède C ++ est les destructeurs. Ces choses peuvent être appelées partout en prenant soin de libérer des ressources, mais en C, vous devez faire tout cela de manière plus explicite. Il est facile pour les programmeurs C ++ d'oublier de le faire.
En ce qui concerne les interviews, si quelqu'un vous demande d'écrire du code pour un algorithme général en C et que vous faites quelque chose comme:
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
Je ne pense pas qu'ils vont décider que vous ne savez pas ce que vous faites parce que vous ne l'avez pas fait:
struct foo x;
Et ils ne devraient vraiment pas se soucier de savoir si vous l'avez utilisé à cout
moins que ce qu'ils essaient de vous faire mettre en valeur soit votre capacité à gérer les entrées et les sorties, ce que C ++ facilite pour les cas courants.
Si vous vous retrouvez dans la position d'être interviewé pour un travail qui nécessite C, vous devriez être franc au sujet de votre manque de connaissance de C en dehors de son chevauchement avec C ++. Ils comprendront probablement qu'un bon programmeur devrait être capable de faire la transition vers C de C ++ assez rapidement.
Tout cela étant dit, C n'est pas si grand d'un langage. La bibliothèque standard est beaucoup plus petite que C ++ et ce n'est pas si grave de se familiariser avec les éléments les plus courants, donc ça ne peut vraiment pas faire de mal de l'apprendre.