c언어에서요 return값을 안정한다면?
츄릅
#includestdio.h
int a,b,c;
int product(int x, int y);
main(){
printf(%d\n,product(24,2));
return 0;
}
int product(int x , int y)
{
return (x * y);
}
이런 소스가 있다고 가정했을때 return 0;
이 있으나 없으나 차이가 없는데 굳이 return 0;
값을 써야 하는지 궁금합니다. 이유가 뭔가요?
그리고 위에 함수 원형(prototype)을 써놓잖아요
이걸굳이 꼭 써야하는지 아래처럼 정의 함수를사용할경우에요
-
얀
함수의 원형을 쓰지 않으면 다음과 같은 문제가 발생합니다.
main 안에서 product 라는 함수를 부릅니다. 근데 그 함수가 어디 있습니까?
프로토타입이 설정되어 있으면, 그런 함수가 있는지도 모르게 됩니다.
왜냐하면 해당함수는 실제 코드상 main 보다 아래쪽에 위치하기 때문이죠..
궁금하시면.
product 함수를 main 보다 위에 두시고, 프로토타입을 지워 보세요~ ^_^
어떻게 동작하나~ ㅎㅎ ^_^ -
무리한
흠.. main 함수의 원형은
int main ( int args, char* argv[]) 입니다.
하지만 main 은
void main(void) 로 해도 동작하기는 합니다. -
도담
에러가 나면 -1등으로 리턴을 해서 파악을 할 수있죠..
-
잔디
함수 원형은 함수 정의 할때 매인 함수앞에 있으면 쓸필요가 없구요 함수 정의가 메인 뒤에 있다면은 컴파일이 매인 함수 내에서 그 구문이 재대로 된건지 안된건지 판단하기 위해서 정보를 줘야 하기 때문에 있는겁니다
글고 매인 함수 같은경우 명시를 안해주면 묵시적으로 int 형으로 인식을 하게 됩니다.(비베 같은경우에서요 )
그래서 리턴 제로를 해줘야 하는거죠...근대 안해줘도 상관 없더라는..컴파일마다 다른듯합니다.