programing

C의 기본 매개 변수

prostudy 2022. 5. 7. 09:32
반응형

C의 기본 매개 변수

C에서 기본 파라미터의 값을 설정할 수 있는가?예를 들면 다음과 같다.

void display(int a, int b=10){
//do something
}

main(){
  display(1);
  display(1,2); // override default value
}

Visual Studio 2008, -void 디스플레이(int a, int b=10)에 구문 오류가 있다고 불평한다.만약 이것이 C에서 합법적이지 않다면, 대안은 무엇인가?부디 나에게 알려 주시오.고마워요.

기본 파라미터는 C++ 기능이다.

C에는 기본 파라미터가 없다.

그것은 표준 C에서는 가능하지 않다.한 가지 대안은 예를 들어 매개변수를 함수 이름으로 인코딩하는 것이다.

void display(int a){
    display_with_b(a, 10);
}

void display_with_b(int a, int b){
    //do something
}

C에는 기본 파라미터가 없다.

이를 통해 얻을 수 있는 한 가지 방법은 NULL 포인터를 통과시킨 다음 NULL이 통과되면 값을 기본값으로 설정하는 것이다.위험하긴 하지만 디폴트 파라미터가 꼭 필요하지 않으면 추천하지 않을게.

function ( char *path)
{
    FILE *outHandle;

    if (path==NULL){
        outHandle=fopen("DummyFile","w");
    }else
    {
        outHandle=fopen(path,"w");
    }

}

그렇게는 안 돼...

내부 배열이나 바그(varg)를 사용하여 함수 내에서 결측 데이터를 입력할 수 있다.하지만 컴파일 시간 검사를 놓치셨군요.

참조URL: https://stackoverflow.com/questions/9185429/default-parameters-in-c

반응형