|
저도 잘모릅니다.
그러나 제가봤을땐. 리턴문이 하나밖에 없어서 그런거같아영.
메인에서 정작 루틴문안에는 리턴이있는데 메인의 끝에 리턴문이 없습니다.
메인의 리턴문은 int형인데 정작 메인이 정상종료되어을땐 리턴이 없고
루틴내부에 리턴문이있다고 하는데영
warning C4715: 'main' : not all control paths return a value
음.. 이문장이 뭘의미하는지 모르지만.. 여튼 제짧은 식견으로는 그렇게 보입니다.
그렇기때문에 결론은 메인이 정상종료되었을때도 리턴을 해달라는겁니다.
리턴문써야할상황에서 안써도 된다면 대부분의 컴파일러는 워닝을 줄껍니다.
그런데 안써야할상황(void)에서 쓰면..에러뜨지않낭? 안해봐서 잘몰겠습니다.
아래 로터스님꺼 소스에 한줄수정해놨습니다. 잘보세영. 리턴문만 딸랑있음됩니다.
그럼..
로터스 님이 쓰신 글 :
: 아래는 간단한 파일 크기 체크 프로그램인데요...
: 한번 봐주세요...
:
: --------------------------------------------------------
:
: #include <stdio.h>
:
: #define MAX_LINE_LEN 127
: #define ERR_FILE_NOT_FOUND 2
:
: long GetFileSize(FILE *fp);
:
: int main(void)
: {
: FILE *fp;
: char fileName[MAX_LINE_LEN + 1];
:
: while(1)
: {
: printf("\nEnter file name : ");
: gets(fileName);
: if(fileName[0] == '\0')
: break;
:
: if((fp = fopen(fileName, "wb")) == NULL)
: {
: printf("\n File open Error! \"%s\" \n", fileName);
: return ERR_FILE_NOT_FOUND;
: }
: else
: {
: printf("File size is %d", GetFileSize(fp));
: fclose(fp);
: }
: }
return ;
: }
:
: long GetFileSize(FILE *fp)
: {
: long oldFilePos, fileSize;
:
: oldFilePos = ftell(fp);
: fseek(fp, 0L, SEEK_END); /* 파일 포인터를 파일 끝으로 이동 */
: fileSize = ftell(fp); /* 현재 파일 포인터 값을 구한다 */
: fseek(fp, oldFilePos, SEEK_SET); /* 원래 파일 포인터 위치로 이동 */
:
: return fileSize;
: }
:
: --------------------------------------------------------
:
: 여기에서요
:
: if((fp = fopen(fileName, "wb")) == NULL)
: {
: printf("\n File open Error! \"%s\" \n", fileName);
: return ERR_FILE_NOT_FOUND;
: }
:
: 이 return 때문에 warning이 나거든요?
: 삭제하면 없어지구요..
: 왜 리턴값을 빼야 되는건지 잘 이해가 안가네요...
: 있어도 상관 없는게 아닐지...
:
: 도움 부탁드립니다~~
|