C언어 - 개념

 안녕하세요 알렉스 입니다. C언어에 대해서 설명을 드리도록 하겠습니다. 


아래 내용은 '모두를 위한 컴퓨터 과학(CS50 2019)'를 시청하고 참고하여 작성을 하였습니다.



컴퓨터는 기본적으로 2개의 숫자만 이해를 합니다. 0,1입니다. 이때 사람이 2진수로만 프로그램을 작성하게 되면 상당히 힘들어 집니다.


이때 프로그래밍 언어가 개발되면서 그나마 인간이 이해할수 있는 코드를 작성하기 시작했습니다. 물론 컴퓨터는 이진수밖에 이해를 못하는 것은 예나 지금이나 마찬가지 였습니다. 하지만 프로그래밍 언어를 기계어로 전환해 주는 어셈블리어가 있기 때문에 과거 이진수로만 프로그래밍을 했을 때보다 상당히 쉬웠습니다.



대표적인 예가 C언어 입니다. C언어는 고급언어로 많은 사람들이 사용하는 프로그래밍 언어 입니다. C언어의 특징중 하나는 CPU종류와 상관없이 컴파일을 통해서 동작시킬수 있다는 것입니다. 절차 지향 언어이며 매우 엄격한 문법을 사용합니다. 

절차지향언어에 대한 설명 링크


예로 들어 정수로 지정된 변수는 오직 정수만 저장할수 있습니다. 다른 데이터(문자열, 불리언 등등)는 넣을수가 없습니다. 


또한 C언어는 메모리에 접근할수 있는 언어입니다. 해당 메모리에 접근하여 CRUD가 가능합니다. 이때 주의가 필요한데 OS가 점유하고 있는 메모리를 임의로 바꿀경우 PC가 멈추거나 망가질수 있습니다.


순서도 3가지 경우만 있으면 단순한 사칙연산에서 뇌수술까지 진행을 할수 있습니다.


1. 진행 : 이전단계가 마무리 되면 다음단계로 진행을 합니다.


2. 선택 : 참과 거짓에 따라 단계가 다르게 선택됩니다.


3. 반복 : 해당 단계를 반복합니다. 정지 조건이 설정되어 있지 않다면 무한으로 반복하게 됩니다.


위 기능들은 기본적으로 C언어의 함수에 존재한다. 기본적으로 C언어는 위에서 아래로, 오른쪽에서 왼쪽으로 진행이 되기 때문에 1번 조건을 충족한다.

 'if'와 'else if' 또는 'else'를 사용하여 선택을 할수 있다 . 마지막으로 반복이 가능하다. 'for'를 사용하여 반복 횟수를 결정할수 있고 'while'루프를 이용하여 무한히 반복하게 할수 있다. 


마지막으로 컴퓨터의 한계에 대해서 말하겠습니다. 컴퓨터는 매우 빠르고 정확해 보이지만 사실 아주 정확하지는 않습니다.


대표적으로 실수를 표현하기 간단한 방법은 정수비트와 소수 비트를 갖이 저장하는 것이다.







댓글

이 블로그의 인기 게시물

Lesson 12_1 프로퍼티 노드(Property Node)

DAQ로 전압 측정하기-2

Lesson 12_2 참조를 이용한 프로퍼티노드(Property Node)