#include <stdio.h>
func(i, j);
int main() {
int a = 3, b = 12;
a = func(a, b);
printf("%d %d \n", a, b);
}
func(i, j)
int i, j;
{
i *= 3;
j /= 3;
printf("%d %d \n", i, j);
}
89페이지의 func 함수에서 마지막 리턴문을 지운 코드입니다.
어쨰서 a가 5가 될까요?
=>디버깅 결과
9 4
5 12
안녕하세요 길벗수험서 운영팀입니다.
return 명령어가 사용되지 않은 함수에서 반환된 값은 어떤 값이 출력될 지 예측할 수 없습니다.
컴파일러에서 해당 함수가 정상적으로 처리되었다는 것을 알려주는 (숨겨진)값이 반환될지,
메모리에 남아있는 쓸데없는 값이 반환될지 알 수 없죠.
사용하고 있는 컴파일러를 뜯어보지 않는 이상 말이죠.
(언어 별, 버전 별로 컴파일러는 달라질 수 있습니다.)
결론적으로.. 해당 수가 어떻게 5가 나왔는지는 알 수 없습니다.
행복한 하루되세요 :)
-
관리자2019-09-25 15:55:11
안녕하세요 길벗수험서 운영팀입니다.
return 명령어가 사용되지 않은 함수에서 반환된 값은 어떤 값이 출력될 지 예측할 수 없습니다.
컴파일러에서 해당 함수가 정상적으로 처리되었다는 것을 알려주는 (숨겨진)값이 반환될지,
메모리에 남아있는 쓸데없는 값이 반환될지 알 수 없죠.
사용하고 있는 컴파일러를 뜯어보지 않는 이상 말이죠.
(언어 별, 버전 별로 컴파일러는 달라질 수 있습니다.)
결론적으로.. 해당 수가 어떻게 5가 나왔는지는 알 수 없습니다.
행복한 하루되세요 :)