공부중

[C/C++] C프로그래밍 본문

Programing/C, C++

[C/C++] C프로그래밍

곤란 2013. 3. 27. 09:03
반응형

 

C언어는 저수준 언어의 효율성과 하드웨어 접근 능력에 고수준 언어의 일반성과 이식성이 결합된 실용적인 언어이다.

 

일반적으로 컴퓨터 언어에는 데이터(Data)와 알고리즘(Algorithm) 이라는 두 가지 개념을 다루는데..

데이터(Data)는 프로그램이 사용하고 처리하는 정보를 말하고 알고리즘(Algorithm)은 데이터를 처리하는 방법을 말한다.

C언어는 절차적(Procedural)언어이다. 이 절차적 언어라는 말은 프로그래밍에서 데이터보다 알고리즘에 더 치중한다

 

절차적 언어들은 프로그램의 덩치가 커지면 작성하는데 어려움이 있다.

프로그램 작성시에 분기문을 사용하게 되는데 이 분기문은 조건검사의 결과에 따라서 서로 다른 곳으로 분기하여 다른 작업을 수행한다.

이러한 분기문이 어지럽게 엉켜있으면 프로그램의 전체적인 육관을 쉽게 파악하기가 어렵고 수정하기 어려웠는데…

이러한 프로그램을 스파게티 프로그램이라고 부른다.

 

이와 같은 문제를 해결하기 위해 구조적 프로그래밍(structured programming)이라는 방법이 생겨났는데

C언어는 이러한 구조적 프로그래밍도 지원한다.

구조적 프로그래밍에서는 for loop, while loop, do while loop, if else 구문 등 몇 개의 정형화된 분기만을 사용하도록 제한한다.

 

하향식(top-down)설계는 구조적 프로그래밍이 고수하는 하나의 철학이다.

이 하향식 설계는 규모가 큰 프로그램을 작고 다루기 쉬운 단위들로 쪼개는 것이다.

이렇게 프로그램의 전체적으로 작고 다루기 쉬운 단위의 집합이 될 때 까지 계속해서 쪼개 나간다.

 

이렇게 C언어에서는 개별적인 작업을 수행하는 함수(function)단위로 프로그램을 개발한다.

반응형