C/C++에서 foo(void)랑 foo()의 차이

  1. void foo() {}
  2. void foo(void) {}

이 둘은 어떻게 다른 건가요? 둘이 같은 거면, void인자는 왜 있는 건가요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기
    1. void foo() {}
    2. void foo(void) {}

    는 C와 C++에서 다르게 해석됩니다.

    C에서:

    1. void foo() : 함수 foo가 받을 인자의 타입과 수가 정해지지 않음
    2. void foo(void) : 함수 foo는 인자를 받지 않음

    C++에서:

    1. void foo() : 함수 foo는 아무런 인자를 받지 않음
    2. void foo(void) : 함수 foo는 아무런 인자를 받지 않음

    이기 때문에

    (void)를 명시해줘야 C/C++가 공통으로 쓰는 헤더에서 일관성을 유지할 수 있습니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.