이번 글에서는 세미콜론(;)을 하나도 사용하지 않고 "Hello World"라는 텍스트를 출력하는 C 프로그램을 작성하는 방법을 알아보겠습니다.
일반적으로는 main() 함수 안에 다음과 같이 한 줄만 작성하면 됩니다.
printf("Hello World");하지만 이 코드 끝에는 반드시 세미콜론이 붙습니다. 세미콜론을 사용하지 않으려면 약간의 트릭이 필요합니다.
핵심 아이디어: if 조건문 활용하기
비결은 printf() 함수를 if 조건식 안에 넣는 것입니다.
C 언어에서 printf() 함수는 성공적으로 출력한 문자 수를 반환값으로 돌려줍니다. 즉, "Hello World"를 출력하면 반환값은 문자열 길이인 11로, 0이 아닌 값입니다. C에서는 0이 아닌 값은 모두 참(true)으로 평가되기 때문에 if 조건식이 성립하고, 그 과정에서 자연스럽게 printf()가 실행되어 화면에 텍스트가 출력됩니다.
예제 코드
#include<stdio.h>
main() {
if(printf("Hello World")) {
}
}출력 결과
Hello World
코드 설명
위 코드의 동작 순서를 정리하면 다음과 같습니다.
1. 컴파일러가 if 문을 평가하기 위해 조건식 내부의 printf("Hello World")를 먼저 실행합니다.
2. printf()가 화면에 "Hello World"를 출력하고 반환값 11을 돌려줍니다.
3. 반환값 11은 0이 아니므로 조건식은 참이 되고, 빈 블록 {}이 실행됩니다.
4. 프로그램은 아무 추가 동작 없이 정상적으로 종료됩니다.
이처럼 함수의 반환값을 조건식에 직접 활용하면 문장 종결자인 세미콜론 없이도 원하는 출력을 얻을 수 있습니다. 인터뷰나 코딩 퀴즈에서 자주 등장하는 재미있는 트릭이니 기억해 두면 유용합니다.