본문 바로가기

Basic Knowledge/C 뜯어보기

(02) C언어기초 - int main(void)

C언어로 프로그래밍을 할 때 필수로 사용해야 하는 함수인 main 함수입니다.

#include <stdio.h>

int main(void)
{
    printf("Hello World!\n");
    return 0;
}

보통, void를 사용하지 않는 분들도 많습니다.

굳이 void를 사용하지 않아도 매개변수라 없다는 뜻으로 알고 계시기 때문이죠.

 

하지만, 일부는 틀렸습니다.

매개변수 칸을 비워둔다고 해서 매개변수를 받지 않을 것이라는 뜻은 아니거든요.

 

예를 들면,

int foo1();

int foo1(int a)
{
    return a;
}

이 코드는 컴파일이 됩니다.

foo1() 함수는 반환형이 int이고, 매개변수를 받지만 자료형이 정해지지 않았다는 의미이기 때문이죠.

 

길게 말할 것 없이

int foo1(); /*매개변수 받음 (자료형 모름)*/

int foo2()  /*매개변수 안받음*/
{
    return 10;
}

함수 선언에서 매개변수 칸에 void가 없으면 매개변수를 받지만 자료형이 정해지지 않았다는 의미이고,

함수 정의에서 매개변수 칸에에 void가 없으면 매개변수를 받지 않는다는 의미입니다.

 

굳이 void를 넣지 않아도 코드는 돌아갑니다.

컴파일 에러도 발생하지 않고요.

하지만 타인과 함께 코드를 공유하는 상황이라면 함수 선언, 정의에 모두 void를 넣어줘서

어떤 함수가 매개변수를 받는지, 받지 않는지 확실히 해두면 코드를 읽고 함수를 사용하는 입장에서 자잘한 실수를 줄일 수 있습니다.