질문: C에서는 기본 매개변수를 사용하여 함수를 정의하는 두 가지 방법이 있습니다. 어떤 방법이 선호되며 그 이유는 무엇입니까?
응답:
C에서는 함수 선언이나 정의에서 기본 매개변수를 지정할 수 있습니다. 두 방법 모두 구문적으로 작동하지만 선호되는 접근 방식은 선언 자체에 기본 매개변수를 지정하는 것입니다.
이 기본 설정은 선언과 정의가 여러 파일에 걸쳐 분리될 때 잠재적인 컴파일 문제에서 비롯됩니다. 다음 예를 고려하십시오.
lib.h(헤더 파일)
<code class="cpp">int Add(int a, int b);</code>
lib.cpp(소스 파일)
<code class="cpp">int Add(int a, int b = 3) { // Function implementation }</code>
test.cpp(테스트 파일)
<code class="cpp">#include "lib.h" int main() { Add(4); }</code>
lib.h의 선언이 기본 매개변수 값을 지정하지 않기 때문에 test.cpp를 컴파일하면 오류가 발생합니다. . 이는 컴파일러가 lib.cpp의 정의가 아닌 test.cpp를 컴파일할 때 선언만 보기 때문입니다.
따라서 다음과 같이 항상 함수 선언에 기본 매개변수를 정의하는 것이 좋습니다.
lib.h
<code class="cpp">int Add(int a, int b = 3);</code>
선언에 기본 매개변수를 지정하면 컴파일러는 함수 정의를 사용할 수 없는 경우에도 해당 매개변수의 존재를 인식하여 컴파일을 방지합니다. 오류가 발생했습니다.
위 내용은 C에서 함수 선언에 기본 매개변수를 지정하는 것이 선호되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!