Coding/C

C언어 기본 구조

|--------3cm--------| 2021. 5. 9. 00:10

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