0. 전처리기

#이 맨 앞에 붙는 명령입니다. 얘네들은 그 어떤 코드보다(main 보다도) 먼저 인지됩니다.

1. 함수

명령들의 집합이 되어 하나의 새로운 명령이 되는 기능입니다. main(), printf(), scanf() 모두 함수 중 하나입니다.

함수는 input과 output이 존재합니다. (필요에 따라 없을 수 있음.)

1-1. 원형

자료형 함수명(자료형 인자1, 자료형 인자2, ...) {
		코드
}

이에 대한 한가지 예시가 a+b를 계산하는 함수입니다.

int add_two_int(int a, int b) {
		int ret = a + b;
		return ret;
}

main함수에서 이를 불러올 수 있습니다.

int main() {
		int arr[50];
		for(int i=0; i<50; i++)
				scanf("%d", &arr[i]);
		for(int i=1; i<50; i++)
				printf("%d ", add_two_int(arr[i-1], arr[i]));
		return 0;
}

50개의 배열을 입력받고, 인접한 두 원소의 합을 출력하는 프로그램입니다.

보시다시피 printf의 두번째 인자로 add_two_int 함수가 있으며, add_two_int 함수의 리턴값이 printf에 들어가게 됩니다.

이렇듯 함수의 자료형은 return 시키고자 하는 값의 자료형입니다. 만약 함수의 자료형이 double인데 int를 return시키면 컴파일 에러가 발생합니다.

만약 아무것도 return시키고 싶지 않으면 void 자료형을 사용하면 됩니다. (void는 공허, 아무것도 없는 뜻입니다)

void print_sum(int a, int b) {
		printf("%d", a+b);
}

void print_sum_nonzero(int a, int b) {
		if(a+b == 0) return;
		printf("%d", a+b);
}