'C로 보는 프로그래밍 입문/프로그램의 기본 구성'에 해당되는 글 3건

  1. 2009.04.19 C의 기본단위
  2. 2009.04.19 언어와 컴파일
  3. 2009.04.19 시작하기 앞서 5


C의 기본단위는 함수이다.(함수  :어떠한 기능이 있고 입/출력이 존재)

* 함수의 형태
int<출력형태> main<함수이름>( void )<입력의 형태>
{<함수몸체시작>

 <함수몸체 : 기능(명령문)>
 printf("Hello, World! \n");
 printf("Hi, Gary \n");
 return 0;
}<함수몸체종료>

예) 아래는 화면에  Hello, World! 줄바꿈하고  Hi, Gary 를 출력하는 예제이다.
void main( void )
{
  printf("Hello, World! \n");
  printf("Hi, Gary \n");  
}

* 세미콜론
  ; 는 명령문의 실행완료 지점, 명령문의 끝을 마무리

 

* 서식문자
 %d 는 출력 대상의 출력 형태를 지정하기 위한 문자

[ C FULL CODE ]
//표준 라이브러리 등록
#include<stdio.h>

//c에서는 모든 프로젝트에 main을 선언하고 컴퓨터에서는 main을 먼저 호출하도록 정의되어있다
int main( void )
{
//printf()라는 함수 호출 : 표준 라이브러리에서 제공하는 함수
//printf는 화면에 내용을 출력하는 함수

printf( "Hello, World! \n" );  
printf( "하이~ 버터백통 \n" );

 //서식문자를 이용해 여러 인자를 넣을 수 있다.
printf( "%d \n" , 1234 ); //%d는 "1234"라는 "10진수 정수형태"로 표현   
printf( "%d %d %d \n" , 10 , 20 ); //3번째 %d는 가비지 값을 표현..따라서 정확한 값을 지정해야 한다
printf( "%d %d %d \n" , 10 , 20 , 100 ); //3번째 %d까지 정상적으로 표현
printf( "%d %s \n" , 10 , "원" ); //2종류의 형태로 표현 "10진수 정수형태"와 "문자열"로 표현
 
printf("****************************\n");
printf("my age : %d \n" , 20);
printf("%d is my point \n", 100);
//printf("Good\nmoning\neverybody\n");
//위와 동일코드
printf("Good\n");
printf("moning\n");
printf("everybody\n")

//함수종료, 값을 반환
 return 0;      
}



C에는 여러가지 서식문자가 있다 이들은 나중에 printf와 scanf 함수에서 다루어 본다. 우선 이번은 C를 코딩해서 빌드해보는 것까지가 중요하다.
Posted by 버터백통

컴퓨터가 이해할 수 있는 언어는 2진수 뿐이다. 1940년대에는 2진수로 개발을 하였다고 한다...
그러나 언어가 발달하면서 점차 사람이 이해하기 쉬운 언어가 등장하게 되었고 사람이 이해하기 쉬울 수록 High Level언어이고 포트란 코볼등이 이에 해당한다. 중간에 Middle Level언어가 있다 그것이 바로 C이다. 그 아래로는 Low Level언어가 있으며 이에는 어셈블러가있고 Low level일 수록 컴퓨터가 이해하기 쉬운 언어이다.

이처럼 다양한 형태의 언어가 있는데 이들 모두 컴퓨터가 이해 할 수 있는 기게어로 제작되어야 한다. 따라서 인간중심의 프로그래밍 언어는 컴파일러라는 것을 가지고있다. 이를 통해 컴퓨터가 이해하기 쉬운 기계어로 변환을 하게 되며 컴파일된 언어는 결국 모두 한가지 기계어로 통일된다는 것이다. 이는 아주 중요한 사실이다. 가령 액션스크립트에서 어떠한 변수에 A이라고 저장한다면 이는 아스키코드로 65라고 저장된다. 또한 자바나 C등 기타언어에서 똑같이 변수를 선언하고 A를 저장한다면 역시 같은 65를 저장하게 되고 이를 기계어로 컴퓨터에서는 해석된다. 따라서 같은 메모리를 사용하는 환경에서는 저장된 메모리 주소를 알게되면 서로 다른 언어간에 같은 값을 주고 받는 통신이 가능하게 되는 것이다.

컴파일러의 역할을 수많은 언어들에 맞게 제작되어 있고 다양하지만 결국 한 개의 언어로 통일화 시켜 컴퓨터가 이해 할 수 있도록 기계어로 번역하는 것이다.
Posted by 버터백통

이제 C에대해서 포스팅을 하려고 합니다..액션스크립트 레시피에서 쌩뚱맞게 C냐구요?
물론 저도 C에 대한 욕심은 없습니다. 꼭 배우고자 한다면 MFC정도일까요?
간단히 swf를 감싸고 인스톨 할 수 있는 정도만 욕심내고 있습니다...그러나 최근 모바일쪽 작업을 하다가 보니 C를 접할 기회가 조금 있었습니다...학교 수업중에 C와 C++을 다루고 있었는데...아주 조금 알고 있는 개념만으로 호스트개발자와 같이 설계를 하고 통신을 다루며 잘못된 부분을 짚어가며 어떠한 문제를 해결한 일이있었는데,
스스로 너무 놀랐고 대단했습니다.. 

아..언어가 다 비슷하구나...란 생각을 하고 엄청 어렵게만 느껴지던 C에 대해 호기심과 도전해볼만한 자신감이
붙었습니다..물론 C로 뭘 만들생각은 없구요...그렇게 시작해 조금씩 공부를 하다보니 그동안 구멍이 뚫렸던 부분들...그냥 그렇구나 이해하고 사용했던 것들이나 개념들에 많은 도움이 되고 있습니다. 전에도 표현했지만 손상된머리결에 엘라스틴한 기분~ㅎㅎ 과 같다고 할까요?

해서 액션스크립트를 개발하고 변수의 활용이나 메모리 활용등 유익한 부분들이 있을 것 같아서 부족하나마 공부하는 내용을 공유하고자 합니다..어디서 부터 손대고 어디까지 해야할지 몰라서 일단 폴더는 많이 잡아두긴했지만 우리에게 필요한 내용까지만 포스팅할 생각입니다.

테스트하기 위한 빌더는 저는 microsoft visual C++을 사용합니다. 그외에 다른 빌더도 있으므로 좋으신거 구하여 사용하시면 됩니다. microsoft visual C++인 경우에는 프로젝트를 만들때 WIN32 Console Application으로 만드시고 나머지 옵션은 넘어가심 됩니다. 소스파일을 만드실때는 확장자를 그냥 *.c라고 하면 그냥 C파일이 됩니다.

C파일을 만들고 기본 라이브러리를 불러와야 하는데 #include하시면 되고 대상 헤더파일은 <stdio.h>입니다.
(C계열에서 헤더파일(확장자 *.h)이라는 곳에 광역 변수나 함수등을 담거나 interface등을 선언하여 참조하는 곳)

역시 책을쓰는 것이 아니므로 간단히 에제와 개념을 요약하는 방향으로 포스팅을 진행할 예정입니다..물론 저도 아직 자세히 모르구요~ ^^
Posted by 버터백통