여기에 상자가 하나 있습니다. 이 상자는 가장 간단하게 물건을 수납할 수 있는 기능만을 가지지만, 워낙 인기가 좋아서 많은 사람들이 이용하고 있습니다. 여러 회사에서 이 상자를 조금 더 다듬어서 팔면 괜찮다는 생각을 갖게 되고, 그 상품을 회사에서 조금 변형을 가하여 판매를 하게 됩니다. 우후죽순 처럼 상자가 마구 늘어나면서... 큰 문제가 하나 생기게 됩니다. 회사마다 상자의 기능을 너무 많이 변형해 버린겁니다. 물건을 담던 상자가 물건을 담지는 못하고, 장식용으로 바뀌거나... 혹은 상자가 너무 무거워 옮길수 없거나.... 이런 문제들 말입니다. 이런 사태가 생기다 보니, 업계들은 모두 모여서 이야기를 합니다. 아... 이렇게 상자를 만들다간, 판매도 못하고 망하겠다고. 그러다 이런 이야기가 나오게 됩니다. '우리 상자를 만들때, 특정한 기준을 가지고 그 기준은 유지하면서 만드는 건 어떨까?' 란 말이 말입니다. 즉, '표준'이라는 것에 대한 이야기가 나오게 됩니다.

 위의 이야기는, 조금 억지스러운 면이 있지만 '표준'이라고 하는 제품의 기본 규칙에 대한 설명은 충분히 되리라 봅니다.(만화로 그리고 싶지만.... 능력이 안되는 관계로 ㅠ) '표준'은 하나의 제품에 대한 가장 기본적이고 명확한 설명(명세)입니다. 이 표준이 있음으로 인해, 누군가 새롭게 시장에 진입하게 되더라도 기본 '표준'을 기준으로 물건을 제조 할 수 있게 되고, 이로 인해 각 제품간의 최소한의 호환성을 유지할 수 있게 됩니다.

 이는 제품에 국한되는 것이 아닌, 프로그래밍의 세계에도 통용이 되는 말입니다. 세상에서 가장 많이 쓰이는 언어 중 하나인 C언어도 위의 이야기에서 예외 일 수는 없습니다. ANSI라고 하는 표준화 기구에 의해서, C언어의 표준이 정해지게 되어져 있습니다.(자세한 내용은 추후에 다루겠습니다. 저도 조사를 해봐야 하는 부분인 만큼;;)

 대부분 C언어를 배웠다! 고 하시는 분들이 배운 C언어는 90년대 재정된 C89 아니면 C90 입니다. 아래와 같은 특징을 기억하신다면, 100% 입니다.


- 변수는 전방 선언(함수의 시작 등에서 변수를 미리 선언해 줘야 함) 만 허용


 위와 같은 C언어가 바로 C89 또는 C90의 문법 입니다. C++를 공부하다 보면, for( int i = 0; ... 형태가 대게 익숙하실텐데, C언어에서는 이를 허용해 주지 않아 전방에 int i 를 먼저 선언해 줘야 해서 불편한 경우를 보셨을 겁니다. 이러한 불편함을 해소하고, 여러가지 시대의 흐름에 맞게 변형 / 수정된 C언어 표준이 바로 C99이고, 이름에서 알 수 있듯 99년도에 개정 되었습니다.

 C99에는 여러가지 특징들을 포함하고 있으나, 눈에 띄는 특징을 몇가지 보면 다음과 같습니다.


- 인라인 함수의 추가
 C++ 에서만 제공 되던 인라인 함수가 C99 에선 C언어에서도 사용 가능하게 변경 되었습니다.


- 변수 선언 위치의 자유
 이제 for( int i = 0; ... 형태도 허용 되며, 코드 블럭 사이의 변수 선언도 이제 가능합니다.


- 가변 길이 배열의 지원
 예전에는 지원되지 않던 부분인데, 배열의 크기를 변수로서 선언하여 사용할수 있게 됩니다. 즉,

int i = 10;
int temp[i];

 와 같은 문법이 허용이 되게 됩니다.


- // 과 같은 주석도 이용 가능
 기존의 대부분 컴파일러가 이를 이용가능하게 해 줘서, 크게 느껴지진 않겠지만... 아무튼 지원 됩니다.


 이 외에도, 더 많은 내용이 추가 및 개정 되었습니다. 그런 이유로... 다음 시간 부터는 gcc를 이용하여, C99의 문법에 대해 조금씩 공부해 보는 시간을 가져 보도록 하죠 :)

'* 프로그래밍의 숲 > - C99' 카테고리의 다른 글

[ C99 ] C99 공부를 위한 사전 준비  (0) 2011.01.05
[ C99 ] C99 란?  (0) 2011.01.02
Posted by Nee
TAG

댓글을 달아 주세요