2011-10-27 4 views

답변

7

0 매개 변수를 나타내는 것으로 잘 정의 된 C++에는 차이점이 없습니다.

그러나 C에서 하나를 만듭니다. (void)이있는 함수는 매개 변수가없는 것을 의미하지만 ()은 매개 변수의 수를 의미합니다.http://publib.boulder.ibm.com/infocenter/comphelp/v8v101/index.jsp?topic=%2Fcom.ibm.xlcpp8a.doc%2Flanguage%2Fref%2Fparam_decl.htm

함수 정의에서 빈 인수 목록에서

함수 가 인수를 취하지 않는 것을 나타냅니다. 함수 선언의 빈 인수 목록 은 함수가 임의의 수 또는 유형의 인수를 사용할 수 있음을 나타냅니다. 따라서,

int f() 
{ 
    ... 
} 

은 함수 f가 인수를 취하지 않음을 나타낸다. 그러나

int f(); 

은 단순히 매개 변수의 수와 종류가 알려져 있지 않음을 나타냅니다. 함수가 인수를 취하지 않는다는 것을 명시 적으로 나타 내기 위해서는 키워드를 void으로 정의해야합니다.

+0

놀라운 설명. 많은 감사 wormsparty – iggy2012

+0

당신은 환영합니다 :) – wormsparty

1

는 아무런 차이가 없습니다. 나는 첫 번째 것이 더 일반적이고 명확하며 간결하다고 말한다.

6

C++에는 차이가 없습니다.
두 번째 선언은 함수가 매개 변수를 사용하지 않는다고 명시 적으로 설명합니다.

두 번째는 C에서 더 많이 사용되며, 첫 번째는 C++에서 더 많이 사용됩니다. () 당신이 매개 변수가 지정되지 않은 (인수의 알 수없는 수) 것을 지정하는 동안 (void)
, 당신은, 함수가 매개 변수가없는 것을 지정하고 다음과 같은 이유로 C의 경우 차이가 있습니다

.

그러나 함수 선언이 아니고 함수 정의 인 경우 C에서도 (void)과 같습니다.

0

C++의 경우 차이점이 없으며 두 번째 형식은 C 호환성을 위해서만 유지됩니다. 첫 번째 양식은 C++에서 선호됩니다.

C에서는 서로 다른 의미입니다. 첫 번째 형식은 알 수없는 인수를 취하는 함수를 지정하고 두 번째 형식은 인수를 0으로 취하는 함수입니다.

0

일부 매우 오래된 (비표준) C 컴파일러는 첫 번째 컴파일러에 대해 불평 할 수 있으므로 두 번째 컴파일러는 이식성이 높아야합니다.

이외에도 차이는 없습니다.

첫 번째 코드는 사용자 코드에서 더 일반적으로 사용됩니다. 코드가 더 짧기 때문입니다.

0

실제로 사용자 정의 메소드에 전달할 매개 변수가 없거나 매개 변수를 전달한 빈 괄호 .notice에 메소드가 반환 값이 없으면 void 키워드를 사용해야합니다. 첫 번째 것은 C#에서 더 일반적입니다.