본문 바로가기
Language & Framework & GIT/C

[씨앤시뿔] C/ C?

by veganwithbacon 2023. 3. 23.
반응형

자바 대국인 한국에서 C를 접할 일은 학교나 따로 관심이 있지 않은 이상은 접할 기회가 JAVA에 비해서 적었다. 프로그래밍 언어에는 C/C++/JAVA/Python 등의 여러 언어가 있지만 이번 포스팅에서는 C에 대해 다루려고 한다.

개념 자체를 몇 개에 나누어 정리할지는 모르겠지만, 기존에 알던 정보 외에 추가적으로 알게 되는 것들을 더해 포스팅하려고 한다. 코드를 다루는 것과 알고리즘을 이해하고 코드를 효율적으로 짜는 것은 다르기 때문이다.


서론은 이쯤..

간단 정리

프로그램에서 컴퓨터가 수행해야 할 다양한 작업을 기술하는데 사용되는 언어를 프로그래밍 언어

CPU 내에 "0001 0110 1111" 처럼 0과 1로 된 CPU 명령어를 읽어 실행하는 것을 기계어(Machine language)

기계어와 일대일로 대응되는 언어를 어셈블리어(assembly language)

 

기계어와 어셈블리어는 기계 종속적(machine-dependent)인데 이는 CPU가 달라짐에 따라 실행유무가 발생하기 때문

이와는 달리 CPU 명령어와 일대일 대응되는 언어가 아니기 때문에 고급 언어를 이용하는 기계 독립적인(machine-independent) 프로그램을 개발 가능한 것이다. 이에는 예로 C나 C++, JAVA, Python 등의 고급 언어가 있다.

고급 언어로 작성된 프로그램은 컴파일러(compiler)에 의해 기계어로 번역된다.


✅ C언어의 특징은 무엇이 있을까

간결한 구문/ 유연성(flexibility)/ 이식성(portability)/성능을 대표적인 장점으로 들 수 있다.

위와 같은 장점이 대표적이지만,  배우기 어렵고 사용하기도 어렵다. 또한 저수준의 지원 기능을 제공한다.

그러나 효율성과 성능 위주의 개발, 최신 언어의 근원이자 프로그래머들 사이의 일종의 공용어 역할을 함에 있어서 프로그래밍의 기본 개념을 이해하는데 도움이 된다는 것을 장점으로 들 수 있다.

 

위의 빌드 과정이 전처리기=> 컴파일=> 링크로 나눌 수 있는데, 이 과정에서 컴파일과 링크에서 에러가 발생하게 될 때 각각 컴파일 에러와 링크 에러가 발생하게 되는 것이다.

일반적으로 전처리기의 문장은 '#'으로 시작하기에 쉽게 구분이 가능하다.

전처리기 수행 후 C 컴파일러는 구문 분석, 코드 생성, 링크(link) 등을 순차적으로 수행한다.

당연하지만 링크를 수행하는 프로그램을 링커(linker)라고 한다.

프로그램을 실행 중에 실행 에러가 발생하게 됐을 때, 이를 바로 잡는 과정을 디버깅(debugging)이라고 한다.


JAVA를 다뤄봤다면 JDK나 SDK에 대해 들어봤을 것이다.

SDK와 JDK의 차이에 대해 간단하게 알아보자.

간단하게 알아본다 했는데 알아야 할 개념 자체가 간단하다.

SDK(Software Development Kit / Standard Development Kit), 즉 모든 언어의 소프트웨어 개발 키트를 칭한다.

JDK(Java Developmetn Kit), 자바의 소프트웨어 개발 키트인 것이다.

 

 

오랜만에 C에 대해 공부하다보니 기본적인 것부터 끄적이게 되어 이것저것 적어봤다.

반응형

'Language & Framework & GIT > C' 카테고리의 다른 글

[씨앤씨뿔] C/ 함수  (0) 2023.04.04
[씨앤씨뿔] C/ 제어문  (0) 2023.03.28
[씨앤씨뿔] C/ 연산자  (0) 2023.03.27
[씨앤씨뿔]C/ 데이터형&연산자  (0) 2023.03.25
[씨앤씨뿔]C/ C 구성 요소  (0) 2023.03.23

댓글