본문 바로가기
C

[C] #include,stdio.h, C 기본 문법

by imagineer_jinny 2022. 2. 14.

본 내용은 POCU COMP2200: C 언매니지드 프로그래밍 강의를 토대로 작성하였습니다.

 

  • #include
C# C
using System; #include <stdio.h>
  • C#에서 using 지시문(directive)과 비슷한 일을 함
  • 다른 파일에 구현된 함수나 변수를 사용할 수 있게 해 줌
  • 다만, C# 처럼 똑똑하게 알아서 함수나 변수를 찾아주지는 않음
  • 사실 #include는 전처리기 지시문 중 하나
  • 전처리기(preprocessor)란?
    • 컴파일을 하기 전에 텍스트를 '복붙'해주는 일을 함

 

 

  • #include는 파일 열어서 텍스트 복사해서 붙여넣는 것임

 

 

  • <stdio.h>
#include <stdio.h>
  • C 표준 라이브러리 (C Standard Library, libc) 중 일부

 

  • C 표준 라이브러리란?
    • 다음에 필요한 매크로, 자료형(data type), 함수 등을 모아 놓은 것
      • 문자열 처리
      • 수학 계산
      • 입출력 처리
      • 메모리 관리
    • .NET Core 프레임 워크와 동등함
      • Console.WriteLine();

 

  • <stdio.h>의 역할
    • libc에서 표준 입출력(Standard Input and Output)을 담당
    • 스트림 입출력에 관련된 함수들을 포함
    • C#의 System 네임스페이스와 비슷한 역할을 가진 라이브러리
    • stdio 라이브러리에 있는 함수의 몇 가지 예:
      • printf()
      • scanf()
      • fopen()
      • fclose()

 

  • main(void) 함수
    • 프로그램의 진입점(entry point)
    • C 코드를 빌드해서 나온 실행파일 (.exe 또는 .out)을 실행하면 main(void) 함수가 자동적으로 실행됨
    • 반드시 int를 반환해야 함
      • 0: 프로그램에 문제가 없었다는 뜻
int main(void)
{
	return 0;
}

 

  • printf() 함수
    • 화면에 데이터를 출력할 때 사용하는 함수
    • printf의 뜻은 'print formatted' (서식에 맞게 출력하다)
    • '\n' : 새 줄(new line)을 의미하는 이스케이프 문자(escape character)
printf("Hello JINNY!\n");

 


  • C 언어의 기본 문법

 

  • C는 절차적 언어
    • C는 순수하게 절차적 언어로만 사용 가능
    • C#은 OOP 언어였지만 절차적으로도 어느 정도 사용할 수 있었음
    • 즉, C로 작성한 코드는 데이터보다 프로세스에 중점이 맞춰져 있음
    • 이게 반드시 나쁜 것은 아님
      • OOP 언어에서도 종종 절차적 언어 스타일로 코드를 작성
    • 또한, 절차적 언어는 이해하기 쉬움
      • 그냥 매뉴얼에 적힌 내용을 순서대로 따라하는 느낌
    • 클래스(class)
      • 그런거 없음
    • 함수
      • 모두 전역(global) 함수
      • 기본적으로 어디에서나 호출 가능
    • 변수
      • 함수 밖에 선언 되어 있으면, 전역 변수
      • 함수 안에 선언되어 있으면, 지역(local) 변수
      • 전역 vs 지역으로 딱 나뉘니 간단

 

 

 

 

댓글