프로그래밍/C

1. C언어 기본 프로그램 구조

록스타★ 2024. 9. 25. 11:49
반응형

서론

정보 보안 및 리눅스(Kali, CentOS, Ubuntu 등) OS와 시스템 포스팅과 CTF(Dream Hack, SuNiNaTaS 등) 관련하여 많이 포스팅을 하였는데 이제 언어에 관련해서 포스팅을 하기로 마음 먹었고, C언어가 시스템 프로그래밍에 중요한 역할을 하기 때문에 프로그래밍 언어 관련 첫 번째로 선택했다.


 

모든 C 프로그램은 main() 함수에서 시작된다.

main() 함수는 프로그램이 실행 될 때 가장 먼저 호출 되는 함수로, 프로그램의 진입점(entry point) 역할을 한다.

 

기본 C 프로그램을 예시로 들기 전 C 프로그램의 실행과정을 먼저 알아보자.

C 프로그램의 실행 과정

 1. 전처리(Preprocessing)

   - #include <stdio.h> 와 같은 명령을 먼저 처리하여 프로그램에 필요한 헤더 파일이나 매크로를 포함

 2. 컴파일(Compilation)

   - 전처리된 코드를 컴파일하여 기계어로 변환

   - 이 과정에서 프로그램의 문법 오류를 체크

 3. 링킹(Linking)

   - 컴파일된 여러 파일과 라이브러리를 결합하여 하나의 실행 파일을 만듦  

 

 

1. 기본  C 프로그램 예시

그림(1) 기초 C

 

2. 코드 설명

- #include <stdio.h>

 > 이 코드는 전처리 지시자로, 표준 입출력 라이브러리인 stdio.h 헤더 파일을 포함한다.
 
> 이 헤더 파일에는 printf와 같은 함수들이 정의되어 있어, 화면에 출력된다.

 

- int main()
 > C 프로그램의 시작점

 > main 함수는 반드시 있어야 하고, 반환 타입은 int로 명시하여 프로그램이 정상적으로 종료될 때 0을 반환하는 것이 일반적

- printf("Hello, World!\n"); 

 > 이 명령은 화면에 Hello, World! 를 출력한다.

 > \n 은 줄바꿈을 의미하는 제어 문자이다.

 

- return 0;

 > main() 함수는 int 형식을 반환해야 하기 때문에 return 0;을 통해 정상 종료를 의미하는 값을 반환한다.

 

 

3. 프로그램 실행 과정

 1. 컴파일러는 코드를 컴파일하여 기계어로 변환한다.

 2. 변환된 기계어는 실행 파일로 만들어진다.
 3. main() 함수가 호출되면서 프로그램이 실행되고, printf 함수는 "Hello, World!"를 화면에 출력한다.

 4. 프로그램이 종료되며 return 0;이 반환된다.

 

 

4. return을 사용하는 이유

main() 함수가 실행을 마친 후 운영체제에 프로그램이 성공적으로 종료되었는지, 오류가 발생했는지를 알리기 위해서

C언어에서 main() 함수는 정수형(int) 값을 반환하도록 설계되어 있는데, 프로그램이 끝날 때 0 또는 다른 값을 반환하는 데 그 값을 통해 프로그램이 정상적으로 종료 되었는지, 문제가 있는지 운영체제가 판단한다.

return 문을 사용하는 이유는 프로그램의 상태를 명시적으로 운영체제에 전달하기 위함이다.

 

 1. return 0;의 의미

   - 정상적인 종료

   - 일반적으로 0을 성공을 뜻 하는 값으로 사용

 

 2. return 값이 0이 아닌 경우

   - 비정상적 종료

   - 보통 오류 코드로 사용, 이 값은 프로그래머가 설정 할 수 있음

   - 아래 그림3번 처럼 임의적으로 return 값을 1로 설정

그림(3) 오류 발생

 

 

 

 

 

반응형

'프로그래밍 > C' 카테고리의 다른 글

2. C언어 변수와 데이터 타입  (1) 2024.09.25
VS Code 로 C/C++ 환경 구축  (0) 2024.09.25