Я думаю, что наиболее важные вещи, которые вы должны знать о C, - это различия между C и C ++. Вы, вероятно , увидеть код , который имеет некоторый тип C в нем в какой - то момент, и вы не должны быть перепутаны , когда вы видите такие вещи , как malloc
, free
, printf
, fopen
, или fclose
. Вы также должны знать, насколько они похожи, а также чем они отличаются от своих аналогов в C ++.
Вы также должны знать, что <<
и >>
левый и правый операторы сдвига, а не операторы вставки. В C ++, где вы можете перегрузить операторы, они были перегружены для выполнения вставки потока и тому подобных вещей, но они все еще используются для сдвига целых чисел.
Убедитесь, что вы понимаете все основные функции C ++, которых нет в C. Если вы достаточно прочтете stackoverflow.com, вы увидите много вопросов, которые касаются различий в языках и недопонимания их людьми.
Вам также следует ознакомиться с препроцессором C, который почти такой же, как (и часто с той же программой), что и препроцессор C ++. Знание того, как его использовать, поможет вам в C ++, но на него больше полагается в C.
В C ++ есть одна большая проблема, с которой трудно иметь дело, это деструкторы. Эти вещи можно вызывать повсюду, заботясь о высвобождении ресурсов, но в C вы должны делать все это более явно. Программистам C ++ легко забыть об этом.
Что касается интервью, если кто-то просит вас написать код для какого-то общего алгоритма на C, и вы делаете что-то вроде:
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
Я не думаю, что они решат, что вы не знаете, что делаете, потому что не делали:
struct foo x;
И им на самом деле не должно быть никакого дела, если вы используете их, cout
если только они не пытаются продемонстрировать вашу способность справляться с вводом и выводом, что в C ++ облегчает использование в обычных случаях.
Если вы оказались в состоянии пройти собеседование на работу, требующую C, вы должны быть откровенны в том, что у вас недостаточно знаний о C за пределами его совпадения с C ++. Они, вероятно, поймут, что хороший программист должен уметь довольно быстро переходить на C из C ++.
Все это, как говорится, C не такой уж большой язык. Стандартная библиотека намного меньше, чем в C ++, и не так уж сложно познакомиться с ее наиболее распространенными частями, поэтому ее изучение не помешает.