2012-05-04 2 views
2

가 나는 다음과 같은 코드를 가지고, 구조체 선언 ... 그래서 함수 선언구조체 포인터를 함수에 전달할 때 "ISO C는 전달 매개 변수를 강제로 금지합니다"오류가 있습니까?

struct stuff{ 
     int sale_per_day[Kdays]; 
     int max_sale; 
     }; 

void set_max(); 

이고 그 부분은 마지막에, 주 앞에있는

void set_max(struct stuff *point; int n = 0) 
{ 
return; 
} 

이제 정확히 내가 무엇이다 잘못하고있는거야? 나는

오류 "ISO C 앞으로 매개 변수 선언을 금지"얻는다. 코스 요구 사항에 따라 GCC C89와 함께 일하고 있습니다.

이 코드와 몇 가지 문제가 있습니다
void set_max(struct stuff *point, int n = 0) 
+1

나는 C89는 기본 인자 값을 가지고 있다고 생각하지 않습니다. –

답변

9

같습니다 정의. C는 보통 그것에 대해 불평합니다
2) 정의에 쉼표가있는 세미콜론이 포함되어 있습니다
3) 나는 int n = 0이 매개 변수 목록에서도 허용되지 않는다고 생각합니다.

다음을 시도하십시오.

struct stuff { 
    int sale_per_day[Kdays]; 
    int max_sale; 
}; 

void set_max(struct stuff *point); 

void set_max(struct stuff *point) 
{ 
    int n = 0; 
    return; 
} 
+0

오 마이 갓! 나는 그 녹슬지 않다라고 생각한다! !! 감사! – YNWA

2

:

void set_max(struct stuff *point; int n = 0) 

1) 귀하의 프로토 타입이 일치하지 않는 그냥 대신 세미콜론 쉼표를 필요로하는 것처럼

관련 문제