일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 랩실일기
- 파싱테이블
- 정보검색
- 스케줄러
- Agile
- 언어모델
- 애자일
- 가상메모리
- 836
- 객체지향설계
- 데이터분석
- 컴파일
- 벡터
- 클래스
- 컴파일러
- 소프트웨어공학
- Linear Algebra
- 오픈소스웹소프트웨어
- 웹소프트웨어
- 프로세스
- css
- React
- DB
- NLP
- 자연어처리
- 파싱
- 데이터베이스
- OS
- C언어
- 운영체제
- Today
- Total
observe_db
[C언어] 1. C언어 기본 개념들 본문
헤더파일(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로 핀볼 게임이 윈도우즈에서 사라진 이유가 고치려고 코드 열었더니 주석이 없어서라는 여담이 있다.
'프로그래밍 언어 기초 > C언어' 카테고리의 다른 글
[C언어] 2. 입출력 함수-표준입출력 (0) | 2023.02.27 |
---|---|
[C언어] 1.(외전) 안이 외않되 (0) | 2023.02.09 |
[C언어] 0. 대략적인 차례 (0) | 2023.02.08 |