Myślę, że najważniejsze rzeczy, które powinieneś wiedzieć o C, to różnice między C i C ++. Będzie prawdopodobnie zobaczyć jakiś kod, który ma pewne C styl w nim w pewnym momencie, i nie powinno być mylone gdy widzisz rzeczy jak malloc
, free
, printf
, fopen
, lub fclose
. Powinieneś także wiedzieć, jak są one podobne, a także czym różnią się od ich odpowiedników w C ++.
Powinieneś także o tym wiedzieć <<
i >>
są operatorami lewej i prawej zmiany, a nie operatorami wstawiania. W C ++, gdzie można przeciążać operatorów, zostały one przeciążone, aby wykonać wstawianie strumienia i podobne rzeczy, ale nadal są używane do przenoszenia liczb całkowitych.
Upewnij się, że rozumiesz wszystkie podstawowe funkcje C ++, których nie ma w C. Jeśli przeczytasz wystarczająco dużo stackoverflow.com, zobaczysz wiele pytań związanych z różnicami w językach i nieporozumieniami ludzi.
Powinieneś także zapoznać się z preprocesorem C, który jest prawie taki sam jak (i często taki sam program jak) preprocesor C ++. Umiejętność korzystania z niego pomoże Ci w C ++, ale w C.
Jedną wielką rzeczą, z którą trudno jest sobie poradzić w C, którą posiada C ++, są destruktory. Te rzeczy można nazwać wszędzie, dbając o uwolnienie zasobów, ale w C musisz zrobić to wszystko bardziej wyraźnie. Programiści z C ++ łatwo o tym zapomnieli.
Jeśli chodzi o wywiady, jeśli ktoś poprosi cię o napisanie kodu dla jakiegoś ogólnego algorytmu w C i zrobisz coś takiego:
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
Nie sądzę, aby zdecydowali, że nie wiesz, co robisz, ponieważ nie zrobiłeś:
struct foo x;
I naprawdę nie powinny przejmować się tym, jeśli używałeś, cout
chyba że próbują przekonać cię do twojej zdolności radzenia sobie z wejściami i wyjściami, co C ++ ułatwia w typowych przypadkach.
Jeśli znajdziesz się w sytuacji, w której przeprowadzana jest rozmowa kwalifikacyjna w sprawie pracy, która wymaga C, powinieneś szczerze powiedzieć o swojej nieznajomości C poza jego nakładaniem się z C ++. Prawdopodobnie zrozumieją, że dobry programista powinien być w stanie dość szybko przejść do C z C ++.
Biorąc to wszystko pod uwagę, C nie jest aż tak wielkim językiem. Standardowa biblioteka jest znacznie mniejsza niż biblioteka C ++ i zapoznanie się z najczęstszymi jej fragmentami nie jest wielkim problemem, więc nauczenie się jej nie zaszkodzi.