가능한 중복 :C++ 무효 함수 선언
더 일반적으로 사용되는이 두 선언과의 차이는 무엇
C++ Why put void in params??
void function1();
및
void function2(void);
가능한 중복 :C++ 무효 함수 선언
더 일반적으로 사용되는이 두 선언과의 차이는 무엇
C++ Why put void in params??
void function1();
및
void function2(void);
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
으로 정의해야합니다.
놀라운 설명. 많은 감사 wormsparty – iggy2012
당신은 환영합니다 :) – wormsparty
는 아무런 차이가 없습니다. 나는 첫 번째 것이 더 일반적이고 명확하며 간결하다고 말한다.
C++
에는 차이가 없습니다.
두 번째 선언은 함수가 매개 변수를 사용하지 않는다고 명시 적으로 설명합니다.
두 번째는 C
에서 더 많이 사용되며, 첫 번째는 C++
에서 더 많이 사용됩니다. ()
당신이 매개 변수가 지정되지 않은 (인수의 알 수없는 수) 것을 지정하는 동안 (void)
와
, 당신은, 함수가 매개 변수가없는 것을 지정하고 다음과 같은 이유로 C
의 경우 차이가 있습니다
.
그러나 함수 선언이 아니고 함수 정의 인 경우 C
에서도 (void)
과 같습니다.
C++의 경우 차이점이 없으며 두 번째 형식은 C 호환성을 위해서만 유지됩니다. 첫 번째 양식은 C++에서 선호됩니다.
C에서는 서로 다른 의미입니다. 첫 번째 형식은 알 수없는 인수를 취하는 함수를 지정하고 두 번째 형식은 인수를 0으로 취하는 함수입니다.
일부 매우 오래된 (비표준) C 컴파일러는 첫 번째 컴파일러에 대해 불평 할 수 있으므로 두 번째 컴파일러는 이식성이 높아야합니다.
이외에도 차이는 없습니다.
첫 번째 코드는 사용자 코드에서 더 일반적으로 사용됩니다. 코드가 더 짧기 때문입니다.
실제로 사용자 정의 메소드에 전달할 매개 변수가 없거나 매개 변수를 전달한 빈 괄호 .notice에 메소드가 반환 값이 없으면 void 키워드를 사용해야합니다. 첫 번째 것은 C#에서 더 일반적입니다.
가능한 복제 http://stackoverflow.com/q/5587207/198011 –