C와 관련하여 알아야 할 가장 중요한 것은 C와 C ++의 차이점이라고 생각합니다. 어떤 시점에서 C 스타일이있는 코드가 보일 것이므로 다음과 같은 것을 볼 때 혼동해서는 안됩니다malloc
, free
, printf
, fopen
, 또는 fclose
. 또한 이들이 어떻게 C ++와 다른지뿐만 아니라 어떻게 비슷한 지 알아야합니다.
당신은 또한 알아야 <<
하고 >>
왼쪽과 오른쪽 시프트 연산자,하지 삽입 운영자입니다. 연산자를 오버로드 할 수있는 C ++에서 이들은 스트림 삽입 및 이와 유사한 작업을 수행하기 위해 오버로드되었지만 여전히 정수를 이동하는 데 사용됩니다.
C ++에없는 C의 모든 기본 기능을 이해해야합니다. stackoverflow.com을 충분히 읽으면 언어와 사람들의 오해에 대한 차이점과 관련된 많은 질문을 보게 될 것입니다.
또한 C ++ 전처리 기와 거의 같은 (그리고 종종 동일한 프로그램) 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 ++보다 훨씬 작으며 가장 일반적인 부분을 익히는 데 큰 도움이되지 않으므로 실제로 배우는 데 어려움이 없습니다.