[ Contents ]
1. C언어의 기원
C언어는 1972년에 벨 연구소의 데니스 니치가 만든 프로그래밍 언어입니다. 기존에 있던 B언어를 계승해서 만들었기 때문에 C언어로 명명되었습니다. C언어 이후로는 우리가 알다시피 C++, C#으로 계승되었으며, C++은 C언어와 완전히 호환됩니다. 그래서 C/C++이라는 표현을 자주 볼 수 있으며, C언어 코드를 .cpp(C++확장자)로 해도 잘 작동합니다. 반대로 C++코드를 .c(C확장자)로는 실행할 수 없습니다.
2. C언어의 특징
어셈블리어(저급언어)의 특징 중 하나인 실행이 빠르다는 장점을 살리면서, 비교적 인간이 이해하기 편하게 만든 고급 언어입니다. 개발자 친화적인 Java나 Python와 달리 기계어에 더 가까우며, 어셈블리어나 이진코드(기계어)와 같이 하드웨어를 코딩하는 데에 적합합니다.
반면 기계어와 가까운 고급 언어의 특징 때문에 처음 코딩을 접하는 사람에게는 더욱 어렵게 느껴집니다. 특히 C언어의 특장점인 'Pointer'개념은 수많은 낙오자를 낳았죠. 포인터를 통해 직접 메모리 주소를 조작할 수 있는 C언어는 운영체제, 임베디드 및 시스템 프로그래밍에 주로 사용됩니다. 이 분야는 컴퓨터공학도보다는 전기전자, 기계공학도들의 영역이며, 프로그래밍을 처음 접하는 비전공자들에게는 어려울 수 밖에 없습니다. 하지만 Pointer 개념만 잘 이해한다면, 엄청 쉬운 언어이기도 합니다.
3. 공부방법
지금도 전공생들의 프로그래밍 입문 언어로 C언어를 많이 배우지만, 점점 Python으로 옮겨가는 추세입니다. 과거 하드웨어 성능이 좋지 않을 때는 적은 메모리를 사용하면서도 빠른 실행속도를 낼 수 있는 C언어를 사용했지만, 지금은 하드웨어 성능이 좋기 때문에 성능보다는 개발 효율이 우선입니다. 지금은 한 줄 한 줄 최적화 코드를 짜진 않죠.
하지만 C언어는 아직도 성능이 중요한 하드웨어 수준의 제어에 사용되며, 전공생들이 컴퓨터 시스템과 메모리 제어방식을 이해하는 데에 큰 도움을 줍니다. 따라서 C의 기초 문법을 익히고 포인터 개념을 이해하는 걸 주요 목표로 공부합니다.
'PL (Programming Language) > C' 카테고리의 다른 글
[C] scanf 로 공백 포함 입력받기, scanf_s 보안경고 해결하기 (0) | 2023.04.19 |
---|---|
[C] printf 함수로 출력형식 지정하기 (출력 자릿수 고정, 소수 반올림) (0) | 2023.04.19 |
[C] 프로그래밍 함수의 정의와 출력함수 printf() (0) | 2022.01.15 |
[C] stdio.h 라이브러리와 printf(), int main(), return 0; (0) | 2022.01.15 |
[C] C언어 컴파일러 설치 (비주얼 스튜디오, Dev c++) (0) | 2022.01.14 |
댓글