C언어 기본 구조 알아보기!
C언어 코딩에 앞서 예시를 통해 C언어 기본 구조를 알아보려 합니다.
C언어 예시 코드
#include<stdio.h>
int main(void)
{
printf("채널.Security\n");
return 0;
}
#include<stdio.h>
-> #include는 전처리기이기에 include 앞에 #이 사용됨.
(#은 전처리기를 호출하는 특별한 문법) ※ 전처리기란?
헤더 파일 호출 방법
#include<헤더 파일>
-> 시스템 헤더 파일을 불러올 때 사용합니다.
e.g., stdio.h, math.h, stdlib.h, time.h, string.h, etc.
시스템 헤더 파일
stdio.h : 표준 입출력에 관련된(파일 입출력 포함) 함수들을 정의합니다.
math.h : abs(), pow(), sqrt() 등의 수학 관련 함수를 정의합니다.
stdlib.h : 표준 라이브러리. 유용하게 쓰일 수 있는 난수 함수{srand(), rand()}, malloc() 등을 정의합니다.
time.h : 시간에 관한 함수들이 정의되며, 난수 생성 함수인 srand(), rand() 등과 함께 사용합니다.
string.h : 문자열에 관련된 함수들이 정의되어 있습니다.
경로는 표준 라이브러리가 있는 /usr/include/ 입니다.
#include"헤더 파일"
-> 사용자의 헤더 파일을 불러올 때 사용합니다.
경로는 사용 중인 소스파일에 경로에서 헤더 파일을 가져옵니다.
(해당 경로에 헤더 파일이 없을 경우 기본 설정으로 지정되어 있는 경로이자 시스템 헤더 파일이 들어있는 include 디렉토리 안에서 헤더 파일을 찾습니다.)
※ 경로 지정은 절대·상대 경로 지정 방법으로 지정할 수 있습니다.
사용자 헤더 파일 생성하기
※간단한 예제
예제 코드 ( calculate.c )
//해당 코드는 덧셈, 뺄셈, 곱하기, 나누기 연산을 하는 코드입니다.
#include <stdio.h>
int main(void)
{
char a;
int b,c;
int result = 0;
printf("식을 입력하세요.\n");
printf("e.g. 5+4, 4-3, 3*2, 2/1\n");
scanf("%d%c%d", &b, &a, &c);
switch (a)
{
case '+':
result = b + c;
break;
case '-':
result = b - c;
break;
case '*':
result = b * c;
break;
case '/':
result = b / c;
break;
}
printf("%d %c %d = %d\n", b, a, c, result);
return 0;
}
예제 코드를 연산을 하는 코드와 변수를 선언하는 헤더 파일로 나뉜다면 다음과 같은 코드로 나뉠 수 있습니다.
변수를 선언한 예제 헤더 코드 ( header.h )
/* header.h */
char a;
int b,c;
int result = 0;
연산을 하는 예제 코드 ( cal_dec.c )
/* 해당 코드는 a, b, c, result라는 변수가 선언되어 있지 않아 실행이 되지 않습니다. */
#include <stdio.h>
int main(void)
{
printf("식을 입력하세요.\n");
printf("e.g. 5+4, 4-3, 3*2, 2/1\n");
scanf("%d%c%d", &b, &a, &c);
switch (a)
{
case '+':
result = b + c;
break;
case '-':
result = b - c;
break;
case '*':
result = b * c;
break;
case '/':
result = b / c;
break;
}
printf("%d %c %d = %d\n", b, a, c, result);
return 0;
}
나뉜 연산코드와 변수 선언한 헤더 파일 포함하는 예제 코드 ( alc_col.c )
#include <stdio.h>
#include "heder.h" // 변수가 선언되어 있는 header.h 헤더 파일을 불러옵니다.
int main(void)
{
printf("식을 입력하세요.\n");
printf("e.g. 5+4, 4-3, 3*2, 2/1\n");
scanf("%d%c%d", &b, &a, &c);
switch (a)
{
case '+':
result = b + c;
break;
case '-':
result = b - c;
break;
case '*':
result = b * c;
break;
case '/':
result = b / c;
break;
}
printf("%d %c %d = %d\n", b, a, c, result);
return 0;
}
예제와 같이 헤더 파일을 생성하고 불러올 수 있습니다.
int main(void)
{
printf("채널.Security\n");
return 0;
}
int main(void)
-> int : 출력 형태 | main : 함수 이름 | (void) : 입력 형태
-> 출력 형태가 int이고 입력의 형태가 void인 main이라는 이름을 가진 함수
{
:
}
-> 함수의 몸체
-> 함수 몸체 내에 존재하는 문장의 끝에는 ;(세미콜론)를 붙여줍니다.
(조건문, 반복문과 같은 컨트롤 문장에는 세미콜론 문자가 붙지 않습니다.)
printf("채널.Security\n");
-> "printf"라는 이름의 함수를 호출하는 문장입니다.
-> 표준 입출력에 관련된 함수들을 정의한 "stdio.h" 헤더 파일에 기본적으로 제공되는 함수이며 이를 표준함수라 하고 표준함수의 집합을 표준 라이브러리라 합니다.
return 0;
-> 함수를 호출한 영역으로 값을 전달(반환), 현재 실행중인 함수를 종료하는 의미를 가지고 있습니다.
'Coding > C' 카테고리의 다른 글
분기문(if, if ~ else, switch) (0) | 2021.06.12 |
---|---|
반복문(while, do ~ while, for) (0) | 2021.06.06 |
연산자 (0) | 2021.06.05 |
C언어 변수와 입·출력(scanf, printf) 그리고 주석 (0) | 2021.05.29 |
[VS Code] C / C++ 컴파일 및 실행 (0) | 2021.03.13 |