observe_db

[C언어] 1. C언어 기본 개념들 본문

프로그래밍 언어 기초/C언어

[C언어] 1. C언어 기본 개념들

쩡윤 2023. 2. 8. 15:10

 

 

헤더파일(header file)/인클루드 파일(include file): 함수를 모아둔 소스 파일. 일반적으로 맨 앞의 선언문에 포함된다.

*표준 라이브러리는 컴파일러에 의해 다른 소스 파일에 자동으로 포함되며 꺾쇠(<>)로 include한다.

*사용자 지정 라이브러리는 쌍따옴표("")로 include하며, 이때 경로도 포함한다.

 

함수(function): C언어는 절차지향적 언어(Procedural Programming)이다.[1]

기본으로 main함수를 가지며, 헤더파일을 통해 라이브러리 함수를 가져올 수도 있고, 사용자 지정 함수를 만들 수 있다.

 

함수의 선언과 정의: 헤더의 아래에서 동시에 할 수도 있고, 선언만 하고 main함수 아래에 정의하는 방법도 있다.

추천은 따로하는 방식이다. 전자는 호출 순서에 따라 작동하지 않을 수 있다.

라이브러리 함수는 linker가 헤더파일을 연결하면서 선언과 정의를 가져온다.

선언은 리턴형, 함수명, 매개변수로 구분된다.

ex) void main() 은 리턴형:void, 함수명 main, 매개변수는 없다.

 

반환(return): 함수의 반환값. 함수를 종료시키고 값을 호출한 곳으로 반환한다. 리턴이 없을 경우(void)는 함수의 끝에서 종료된다.[2]

값은 리턴형을 자료형으로 하는 return 뒤의 식과 같다.

main의 경우는 운영체제에 넘겨주는 값이다. 0일 때 정상종료이다.

 

주석: //로 줄 주석, /**/로 범위 주석이 가능하다. 설명을 달아서 코드의 가독성을 높이고 정보를 제공한다.[3]

 

 

예시와 정리

// 줄주석
/*
범위주석
*/

//헤더파일. stdio라는 헤더파일을 포함한다.(stdio는 standard Input/Output의 준말)
#include<stdio.h> 


void func1(){
	printf("함수 선언과 정의 1번");
}
void func2();

//리턴형 int, 이름 main, 매개변수 없는(void) 함수. 
int main() {
    func1();
    func2();
    
    //0을 리턴 == 정상 종료한다.
    return 0;
}

void func2(){
	printf("함수 선언과 정의 2번");
}

 

 

 

 


[1] 절차지향적 언어와 다르게 객체(Object)를 단위로 하는 객체지향프로그래밍(Object oriented Programming)도 있다

[2] 사실 컴퓨터 동작에서 리턴이 없는 함수는 없다. 값을 쓰지 않을 뿐 메모리상에 값은 존재한다.

[3] TMI로 핀볼 게임이 윈도우즈에서 사라진 이유가 고치려고 코드 열었더니 주석이 없어서라는 여담이 있다.

 
Comments