반환 값이있는 함수의 경우 void 함수를 호출하는 것처럼 호출 할 때 오류가 발생하지 않는 이유는 무엇입니까? 예를 들어, printf 함수는 출력용입니다. printf 함수는 반환 값을 가지고 있습니다.방금 함수를 호출 할 때 반환 값이있는 함수가 아닌 함수
왜 함수에 반환 값이있는 경우 반환 값을 저장하지 않고 함수를 호출 할 수 있습니까? 반환 값은 어떻게됩니까?
반환 값이있는 함수의 경우 void 함수를 호출하는 것처럼 호출 할 때 오류가 발생하지 않는 이유는 무엇입니까? 예를 들어, printf 함수는 출력용입니다. printf 함수는 반환 값을 가지고 있습니다.방금 함수를 호출 할 때 반환 값이있는 함수가 아닌 함수
왜 함수에 반환 값이있는 경우 반환 값을 저장하지 않고 함수를 호출 할 수 있습니까? 반환 값은 어떻게됩니까?
반환 값은 어떻게됩니까?
무시됩니다.
왜 함수에 반환 값이있는 경우 반환 값을 저장하지 않고 함수를 호출 할 수 있습니까?
이것이 언어 설계자가 적절하다고 생각한 것이기 때문입니다. 어리석은 것처럼 보이지만 그 반환 값이 항상 유용하다고 보장되는 것은 아닙니다. printf
의 경우이 값은 작성된 문자 수를 나타냅니다. 그리고 우리는 오류를 감지하기 위해 신경 쓸 것입니다. 그러나 오류 처리 자체의 일부로 인쇄 작업을 수행한다면 그 가치는 무엇입니까? 우리는 지금 더 열심히 실패 할까? 사용하지 않는 변수를 사용하지 않고 무시할 수 있어야합니다.
컴파일러에서 값 무시에 대해 경고하도록하려는 경우 대부분 컴파일이 해당 효과로 전환됩니다. 예 : GCC의 -Wunused-result
.
그런 경우 결과를 void
으로 전송하여 예외를 명시 적으로 만들 수 있습니다. 어떤 이들은 그것이 의도를 더 잘 표현한다고 말하지만, YMMV.
언어가 이와 같이 디자인 되었기 때문에. 반환 값을 사용하지 않으면 반환 값에 아무런 변화가 없으며 단순히 사용되지 않습니다. –
함수의 반환 값을 삭제해도 아무런 해가 없습니다. –
어떤 사람들은'(void) printf ("Hello");'를 선호합니다. 개인적으로 나는 결코 반환 가치를 무시하지 않습니다. – Stargateur