C언어에서 제일 많이 사용하는 함수는 printf, scanf 두 개 정도가 있겠다.
쉽게 설명하자면, 말 그대로 printf 함수는 출력하기 위한 함수이고, scanf 함수는 입력을 받아들이기 (스캔) 위한 함수라고 설명할 수 있겠다.
printf 함수는 stdio.h 헤더파일에 정의되어 있으니 다음과 같이 헤더를 정의하고 사용하면 된다.
printf 함수로 간단한 문자열 출력하기
#include <stdio.h>
▲ stdio.h 헤더 정의
include는 '포함하다' 라는 뜻을 가지고 있으므로, stdio.h 헤더파일을 본 코드에 포함시킨다는 뜻이 되겠다.
헤더파일을 본 코드에 포함시킨 후, 무작정 printf 함수를 이용해 문구를 출력하는게 아니다. 코드의 메인이 되는 함수를 추가로 하나 선언해야 하는데, C언어 표준에 부합하는 메인 코드 함수는 int main() 함수이다.
#include <stdio.h>
int main() {
return 0;
}
▲ int main 함수 입력 예시
int (정수형)는 자료형이다. 정수값의 main 함수를 선언하고, main 함수 內 출력값이 완료되면 정수값을 반환한다는 뜻이다.
int main() 함수는 진입점 역할을 하는 함수로서, 컴퓨터에게 해당 프로그램의 진입은 이 곳에서부터 시작하면 된다라는 의미를 전달하는 함수라고 생각하면 편리하다. 운영체제가 main 함수를 호출하기로 약속되어 있기 때문에, C언어에서 main 함수의 사용은 필수적이다.
주의할 점은, C언어에서는 대소문자를 구별하기 때문에 대문자를 섞어 쓰는 것은 올바른 형태가 아니며, main 함수를 여러개를 만들거나 아예 없는 경우 또한 올바른 형태가 아니다.
간단한 프로그램은 main() 함수 하나로만 구성이 가능하고, 여러가지 기능이 추가되어 코드가 복잡해 진다면 추가적인 함수를 선언해서 사용할 수 있다.
int (정수형)은 main함수가 실행되는 중 0의 값이 반환되면 정상, 그 외의 값이 반환되면 비정상 에러 발생을 프로그램 외부에 알릴 수 있다. 따라서, 프로그램이 정상적으로 종료가 되었는지 여부를 외부에 알리기 위해 return 0; 문구를 추가해 확인할 수 있는 것이 되겠다.
함수가 처리할 문장은 {중괄호} 를 이용해 감싸주며, { 부터 시작되는 명령문들이 위에서부터 차례대로 실행되며 코드의 임무를 수행한다. 마지막에 } 를 만나거나 return 값을 만나면 초반으로 돌아가게 된다.
이제 int main() 함수에 printf 함수를 이용해 문구를 출력해 보자.
#include <stdio.h>
int main() {
printf ("Hello World");
return 0;
}
▲ printf를 이용한 출력 예시
① printf 를 맨 앞에 적어주고, 괄호를 열고 문구를 출력하기 위해 쌍따옴표 (")를 입력한다.
② 출력할 문구를 적어주고, 맨 뒤에 쌍따옴표 (") 를 입력해 문구의 마무리를 지어준다.
③ 열었던 괄호를 다시 닫아주고, 문장의 마침을 알리기 위한 세미콜론 (;)를 찍어주면 된다.
출력할 내용은 쌍따옴표 (") 로 감싸서 printf 함수의 소괄호 () 안에 묶어준다. 이는 문자열이라고 한다.
위와 같은 코드를 컴파일러에 작성하고, 컴파일 후 실행해 보자.
Hello World라는 문장이 정상적으로 실행된 모습을 확인할 수 있다.
한 문장만 출력되면 재미 없으니, 지금부터는 여러가지의 문장을 출력해 보자.
#include <stdio.h>
int main() {
printf ("Hello World");
printf ("This is C");
return 0;
}
▲ 여러 문장 출력 예시 1 (줄바꿈 문자가 없을 경우)
위와 같은 문장을 컴파일러에 작성하고, 컴파일 후 실행 해 보자.
Hello World 바로 다음에 띄어 쓰기도 없이 This is C 라는 문구가 붙어서 출력되는 것을 확인할 수 있다.
이 때 필요한 것이 바로 줄 바꿈 문자(\n) 이 되겠다.
#include <stdio.h>
int main() {
printf ("Hello World\n");
printf ("This is C");
return 0;
}
▲ 여러 문장 출력 예시 2 (줄바꿈 문자가 있을 경우)
위와 같은 문장을 컴파일러에 작성하고, 컴파일 후 실행 해 보자.
줄 바꿈 문자 (/n) 를 사용하니, 정상적으로 우리가 의도했던 대로 출력되는 모습을 확인 할 수 있었다. 굳이 printf 를 두개 사용하지 않고, printf("Hello World\nThis is C"); 를 입력해도 결과는 동일하지만, 가독성이 좋지 않으니 참고하자.
프로그램에 설명하는 메모 달기, 주석
기본적으로 C언어에서 printf 함수를 이용해 의도하는 문자열을 출력하는 것을 알아보았다. 이제는 코드를 설명할 수 있게 메모를 입력해 둘 수 있는 주석에 대해 알아보고자 한다.
프로그램의 코드가 길어지게 되거나, 다른 사람이 코딩해 둔 코드를 열람할 때에는 어떤 의도로 이러한 코드를 작성했는지 궁금하기 마련이다. 그러기 위해서 프로그램 코드 內 설명하는 메모를 달 수 있는 것이 바로 주석이라고 할 수 있겠다.
컴파일러에 코드를 작성하고 컴파일 할 때, 컴파일러는 주석처리된 부분을 모두 무시하고 그 이외의 부분을 컴파일한다. 주석을 활용하면 코드 內 메모를 입력할 수도 있고, 소스 코드의 일부분을 삭제하지 않고 임시적으로 무시해서 컴파일하게 만들 수 있다.
주석은 두 가지 종류로 사용이 가능하다.
/*
본 프로그램은 C언어 printf 출력 테스트 프로그램입니다.
코드 작성 일시 : 2022-03-08
아크레dev
*/
#include <stdio.h>
int main() {
printf (/*\n은 줄바꿈 문자입니다.*/"Hello World\n");
printf ("This is C");
return 0;
}
▲ 주석 사용 예시 1 (/*, */ 사용)
주석내용 맨 앞과 맨 뒤에, /*와 */를 감싸서 사용하면 여러 줄의 내용도 한꺼번에 주석으로 만들 수 있어 편리하다. 또한, 코드 중간의 일부분만을 주석처리 하는 것도 가능하다. 하지만 한 줄만 주석처리를 할 경우에는 불편할 수 있다.
//본 프로그램은 C언어 printf 출력 테스트 프로그램입니다.
//코드 작성 일시 : 2022-03-08
//아크레dev
#include <stdio.h>
int main() {
printf ("Hello World\n");
printf ("This is C");
return 0;
}
▲ 주석 사용 예시 2 (// 사용)
해당 줄 전체를 주석처리를 하고 싶을 경우에는 //를 사용한다. 문장의 맨 앞에서 사용한다.