C에서 함수 매개변수의 기본값을 선언에서만 정의하거나 정의에서만 정의해야 합니다. 두 곳 모두?
답은 기본 매개변수 값을 정의가 아닌 선언에 지정해야 한다는 것입니다. 선언은 호출자가 함수에서 유일하게 볼 수 있는 부분이므로 함수를 올바르게 호출하는 데 필요한 모든 정보를 포함해야 합니다.
즉, 기본 매개변수 값은 함수 유형의 일부입니다. 서명. 매개변수의 유형과 기본값이 있는지 여부를 결정합니다. 기본 매개변수 값이 선언에서 생략되면 컴파일러는 매개변수에 기본값이 없다고 가정하고 호출자가 매개변수를 제공하지 않으면 오류를 생성합니다.
예를 들어 다음 함수는 선언은 각각 기본값이 0과 1인 두 개의 정수 매개변수 x와 y를 사용하는 함수를 정의합니다.
int foo(int x = 0, int y = 1);
다음 함수 호출은 foo 함수를 기본값으로 호출합니다. 두 매개변수 모두:
int result = foo();
다음 함수 호출은 x 매개변수에 대해 기본값이 아닌 값을 사용하여 foo 함수를 호출합니다.
int result = foo(5);
y에 대한 기본 매개변수 값은 여전히 입니다. x 매개변수가 명시적으로 지정되었음에도 불구하고 두 번째 함수 호출에 사용됩니다. 이는 기본 매개변수 값이 함수 유형 시그니처의 일부이고 함수 호출에서 이를 재정의하는 것이 불가능하기 때문입니다.
함수 정의에서 기본 매개변수 값을 정의하는 것은 가능하지만 권장되지 않습니다. 정의는 컴파일러에만 표시되며 함수의 유형 서명에는 영향을 주지 않습니다. 결과적으로 유지관리가 혼란스러울 수 있고, 선언에서는 기본 매개변수 값이 변경되었으나 정의에서는 변경되지 않은 경우 오류가 발생할 수 있습니다.
위 내용은 C에서 기본 매개변수 값을 어디에 정의해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!