1. 기본적인 구조
드디어 C언어 명령어 세계에 입장하셨습니다 ㅋ
먼저 명령어를 설명하기 전에 프로그래밍을 어떻게 해야하는지 순서가 어떻게 되는지 부터 설명하겠습니다
일단 아직은 모르시겠지만 예시를 하나 들겠습니다
// Test
#Include <stdio.h>
int main (void) {
printf ("나랑께");
return 0;
}
대충 구조가 이렇게 됩니다
윗줄부터 차례로 설명하자면
글씨가 /* */ 이걸로 감싸져 있네? 이런걸 주석 이라고 합니다 ,
주석이란 프로그래머가 프로그래밍을 하다 명령어 옆에 메모하고 싶은거나 아이디어나 프로그램 설명을 써 놓고 싶을 떄
사용하는 것 입니다
이 주석으로 처리된 부분은 소스파일을 컴파일 할 때 아무런 영향을 주지 않습니다. 만약 저 주석을 풀어버린다면 당연히 에러가 나겠죠
주석은 2가지가 있습니다 여러줄 한번에 주석처리 , 한줄만 처리
윗줄에 나온것처럼 /* */ 가 여러줄 한번에 주석처리하는거고요 // 가 한줄만 주석 처리하는 겁니다.
우리가 소스파일에 저 주석처를 하게 되면 주석 처리된 부분이 초록색으로 변할겁니다 ㅋ 그걸로 주석처리가 된지 않됬는지 구분하시면 되겠습니다
또 주석안엔 주석처리를 해서는 안됩니다.
그다음 #include < stdio.h > 한번 그냥 무지식 상태에서 해석을 해봅시다 ..
# ...음 이건 뭐냐ㅋㅋㅋ include 는 뭘 포함하는거같고 stdio.h 란 파일을 포함하는거 같네 ㅋ
맞습니다 ㅋㅋ 그대로 해석하시면 되요
여기서 좀 알아야 되는건 # 입니다. 이게 엄청?나요
이거의 이름은 '전처리기' 말대로 컴파일러가 컴파일을 하기전에 먼저 처리하라는 의미에요 ㅋ
stdio.h 는 헤더파일 입니다. 이 파일을 해석하면 Standard Input Output ( 표준 입출력 ) 줄여서 stdio
헤더파일이란 표준 라이브러리 함수 ( printf 나 scanf 이런 함수들 )들의 동작을 따로 정의해 놓은 파일 입니다
그러니 저런 함수를 사용하기전에 그 함수가 있는 헤더파일을 먼저 위에 적어주고 명령어를 사용해야겠죠?
그다음 int main ( void ) { 뭐시기.. } 이런게 보이는군요
main 은 메인 함수라 부르고 , 프로그램 실행 시 운영체제에 의해서 맨 처음 호출되고 맨 나중에 종료되는 겁니다
우리는 이제 이 함수 안에다가 명령어를 막 써 넣겠죠
근데 옆에있는 int 는 뭐냐고요? 뒤 함수 파트에서 나오는 개념인데 함수 앞에 저런 자료형을 써서 출력형태를 나타냅니다
int 는 미리 배우자면 정수형을 나타냅니다. main 옆 (뭐시기)는 입력형태를 나타냅니다 그리고 void 는 해석대로 '비어있는' 이란 뜻입니다
전체를 해석해보면 입력 없이 ( void 니까 ) main 함수를 호출해서 출력은 정수 ( int 니까 )로 하라는 의미입니다
이해가 잘 안되시죠? 점차 공부하다 보시면 깨닫게? 되실 겁니다 ㅋㅋㅋ
그리고 함수의 처음과 끝은 중괄호로 표시합니다 그래서 { } 이렇게 묶어준거고요 .
또 중괄호 안에 이제 명령어를 써 넣는거죠
그리고 printf 란 함수 맨 뒤에 보면 세미콜론 ; 이 있는데요. 이것도 매우 중요합죠
새미콜론은 문장의 끝을 의미하는 마침표 같은 존재입니다.
그리고 return 은 반환과 종료의 의미를 갖고 있습니다.
retrun 0; 같은 경우는 0을 반환하고 main 함수를 종료해라 정도로 해석이 되겠죠?
0을 쓴 이유는 이 함수는 정수형 함수니 정수를 반환해야 하기 때문입니다
그리고 추가로 말하면 main 함수는 출력형 입력형 없이 걍 main() 이렇게만 써도 됩니다
이제 드디어 명령어를 배워 봅시다
2. printf 함수
모든 프로그래머들이 초보 때 다 한번씩 써보고 해봤던 거 Hello World!
한번 저 문잘 출력해 봅시다 ... 어떻게요?
문자열을 출력할 때는 printf 란 출력함수를 사용합니다 . 그전에 printf 함수를 사용하기전에 printf 함수가 정의되있는 stdio.h 를 먼저 인클루드를 해야겠죠?
printf 함수의 사용법은 printf ( " 여기다 문자열 넣으셈 " ); 이렇게 쓰시면 됩니다 . 이 사용법 말고도 더 많은 사용법이 존재합니다 는 좀 있다가요..
#include <stdio.h> //printf 함수를 사용하기 위해서
main () {
printf ( "Hello World"); // Hello World 를 출력한다
}
아 그리고 결과는 콘솔창에 결과가 뜹니다.
한번 소스창에 이렇게 치고 컴파일을( 단축키 -> F7 )하고 실행(디버깅)[단축키 -> F5]를 해보면
출력되고 바로 프로그램이 꺼지는 현상이 발생합니다. 이걸 방지하기 위해서 getchar(); 이나 _getch(); 이나 system("pause"); 를 사용합니다. 이 명령어는 뒤에서 다시 배우니 간략히 설명하면 , 순서대로 ,
getchar(); -> 문자1개를 받아들일 때 까지 기다림 // stdio.h 파일 필요
_getch(); -> 문자1개를 받아들일 떄 까지 기다림 (차이점은 생략 나중에 설명 ) // conio.h 파일 필요
system ( "pause"); -> 시스템 명령어 말대로 일시정지 // stdlib.h 파일이나 windows.h 파일 필요
이 중 하나를 마지막 부분에 넣어주면 바로 꺼지는걸 막을 수 있다.
그럼 성공적으로 바로 꺼지지 않고 Hello world 가 출력된걸 볼 수 있다.
printf 의 추가 기능을 설명하면
2-1. 추가 기능
특수문자가 사용이 가능한데
- 특수 문자
\a -> 경고음 소리 발생
\n -> 개행함 ( 엔터라 보면 됨 )
\b -> 백스페이스 ( 뒤로 한칸 )
\t -> 수평 탭
\v -> 수직 탭
\\ -> 역슬레시
\' -> 작은 따옴표
\" -> 큰 따옴표
등이 있다 . 사용법은 똑같이 printf 안에 넣어주면된다 ex) printf ("\a\a\n\a");
딱히 이 표를 외울 필요는 없다 그냥 필요할 떄 참고 하면 된다
또 서식문자가 사용이 가능하다.
- 서식 문자
먼저 예를 들어보면 printf ("%d", 1+1 );
이 명령의 뜻은 화면에 %d 를 출력하란 뜻이 아니라 1+1 인 2를 출력하란 뜻이다.
10진수는 Decimal 16진수는 HeXadecimal 8진수는 Octal 이며 각 알파벳 d,x,o 를 따서 만들었다
이런 서식문자를 사용해서 정수 실수 소수 문자 문자열 진수 등을 출력시킬 수도 있다.
아래 표도 그냥 몇개 필요한거만 외우고 필요하면 참고하면 된다
%d , %i -> 10진수 정수 ( 양수 음수 모두 )
%x , %o -> 16진수 , 8진수 ( 양수만 가능 )
%f , %lf -> 10진수 실수 ( 양수 음수 모두 가능 )
%c -> 문자 1개
%s -> 문자열
%u -> 10진수 정수 ( 양수만 )
%e -> e 표기법에 의한 실수
%E -> E 표기법에 의한 실수
%g -> 소수점 이하 자리 수에 따라 %f , %e 둘 중 하나 선택
%G -> 소수점 이하 자리 수에 따라 %f , %E 둘 중 하나 선택
%% -> %기호 출력
사용법은 printf ( "서식문자",맞는형태); ex) printf ( "%d 뺴기 %d 는 %d 이다 \n", 5 , 2 , 5-2 );
//순서대로 써줘야 한다
- 필드 폭 지정
출력되는 데이더의 필드 폭을 설정할 수 있다.
%03d -> 필드 3칸 확보 오른쪽 정렬 출력 나머지 공간은 0으로 출력
%-3d -> 필드 3칸 확보 완쪽 정렬
%+3d -> 필드 3칸 확보 온른쪽 정렬 양수는 + 음수는 - 붙여서 출력
사용법은 똑같고 저 값은 바꿔서 사용이 가능하다. 만약 실수 4자리 나머지 공간 0으로 하려면 %04f 이렇게
3. scanf 함수
이제 scanf 함수이다
이 함수는 입력받는 함수이다 . 문자나 문자열이나 숫자나 , 서식문자의 형태에 따라서 입력받는 형태는 달리지겠죠 ㅋ
또 이 함수를 사용하기 위해서는 stdio.h 파일을 인클루드 해야한다
사용법은 다음과 같다
scanf ( "서식문자",&변수);
이것도 다음단원에 나오는 과정인데 . 미리설명하겠습니다, 변수란 입력받은 데이터를 저장하는 임시 공간이라고 생각하시면 됩니다
이 변수도 자료형태에 따라서 저장하는게 달라지겠죠
int 는 정수형
char 은 문자
float 실수 .... 등 있습니다
선언은 어디다 하냐면 함수의 맨 윗부분에 하고 방식은 이렇게 합니다 자료형태 변수명; ex) int number;
이런형식으로 선언하면 된다
그럼 총 사용법을 적어보면
int age;
scanf ( "%d", &age ); // 왜 변수앞에 & 를 붙이는지도 나중에 나오는 개념이기 때문에 나중에 설명하겠다.
이렇게 입력을 받는거다
만약 입력받은걸 출력하고 싶으면
int age; // 추가로 말하면 바로 여기서 age 값을 정할 수도 있다
scanf ( "%d", &age );
printf (" 님의 나이는 %d살임", age );
이런형식으로도 사용이 가능하다.
오늘강의는 여기서 끝 ㅋ
'Programming > C' 카테고리의 다른 글
[C lang] 콘솔창 바로 안 꺼지게 하기 (4) | 2014.04.26 |
---|---|
[C lang] 4. 상수와 연산자 (0) | 2014.04.26 |
[C lang] 3. 변수?! (0) | 2014.04.26 |
[C lang] 1. 컴파일러 설치하기 (0) | 2014.04.26 |
[C lang] 0. C 언어란? (0) | 2014.04.26 |