1.8 C언어와 함수 강의의 14:15 16:50 부분 질문있습니다.
228
작성한 질문수 1
안녕하세요. 강의 유익하게 잘 보고있습니다.
14:15, 16:50 부분 관련 질문있습니다.
14:15의 설명에서 return 뒤에 쓰이는 숫자가 exited with code 뒤에 출력으로 오는 것을 알 수 있고
16:50의 설명에서 int 와 7이 관련이 있다 하셔서 개인적으로 실험을 하나 해봤습니다.
강의의 코드를
float main()
{
return 7.7777;
}
로 바꾸어서 실행하면 7.7777이 나올 것으로 생각했는데
실제 출력되는 숫자는 다른 숫자가 나옵니다.
혹시 return 함수가 실수형은 받지 않아서 이런 현상이 나타나는 건가요?
답변 1
3
안녕하세요!
In C and C++ standard the entry point must be one of the following forms:
int main(void);int main();int main(int argc, char **argv);int main(int argc, char *argv[]);
Some variations are allowed but in C++ the return type must always be int. In C sometimes void return type is also accepted by the compiler. However you can't return other types because the return value will be used by the OS and other programs to determine exit code which is always an integer.
main 함수는 int 정수 반환형밖에 없습니다.
main 함수의 리턴값이 하는 역할은 운영체제에게 이 프로그램이 어떻게 끝이 났는지 알려주는 역할입니다. 운영체제는 이에 대한 정보를 정수 코드로 알아듣기에 반환형이 정수여야하는거구요!
따라서 return 456; 이렇게 직접 리턴 값을 지정해주는게 아니라면 기본적으로 main 함수는 0 을 리턴하고, 이렇게 0 을 리턴한 것을 보고 운영체제는 프로그램이 정상적으로 실행되었고 문제없이 잘 종료 되었구나라고 인식하게 됩니다.
main 함수는 int 여야 합니다. 질문자님께선 리턴형이 float 인 main 함수로 만드셨기 때문에 warning 살펴보시면 아마 main 리턴은 int 여야한다고 경고 뜨실거에요. 이렇게 main 함수 형태가 정상적이지 않은 문제 때문에 다른 값을 리턴하게 되었을거에요. 다시 말씀드리지만 return 1 이런식으로 main 함수가 리턴할 정수를 직접 지정해준게 아니라면, main 함수는 자동으로 프로그램 성공시 0, 뭔가 문제가 있을시 그 외의 숫자를 리턴한다고 보시면 됩니다.
7.77이 아닌 다른 숫자를 리턴한 결과는 main 함수가 float 인 것 때문에 뭔가 프로그램이 정상적이지 않아 0 을 리턴하지 않았다고 해석할 수 있을 것 같습니다.
(그리고 여담으로 7.77 은 float 이 아닌 double입니다. float이라면 7.77f 이 맞는 표현입니다.)
Export template 안됨
1
63
2
완전히 똑같이 따라해도 exe파일이 안만들어져서 실행이 안됩니다.
1
88
3
main 함수에서 왜 int만 선언이 되는걸까요
1
78
2
8비트 2진수 변환시 왜 1을 더해야하나요?
1
75
2
혹시 강의를 빠르게 수강하려면 어디서부터 듣는게 좋을까요?
1
78
1
프로토타입과 함수간의 인자 불일치
1
87
2
12.12 헤더 관련 질문
1
74
2
Visual Studio Community 2026 사용 문의
1
169
2
Q. 15:30, 부호가 있는 8비트 정수 질문
1
71
2
getchar(), putchar()
1
111
3
강의자리ㅛ
1
93
2
비주얼스튜디오코드로 공부해도 상관없나요?
1
127
2
소스파일안에 여러 파일
1
87
2
F5와 F7의 차이
1
90
2
c = TWO * (a+b); 에서 a와 b는?
1
67
2
; 세미콜론을 붙이는 기준에 문의
1
78
1
Step over 기능 문의
1
64
2
2.6 강의 따옴표 출력 규칙 문의
1
87
2
int main 함수 관련 오류 문의
1
76
2
13.4 words[0]
0
73
2
11.7 함수를 구현해 봤습니다.
1
67
2
11.6 직접 strcmp와 strncmp를 구현해 보았습니다.
1
71
2
11.6 my_strcat과 my_strncat을 구현해봤습니다.
1
60
2
11.6 fit_str함수를 구현해 봤습니다.
1
59
2





