C를 사용하여 Visual Studio 2019에서 상당히 간단한 수학을 수행하고 있지만 부동 소수점이 잘못된 값으로 반환됩니다. 디버깅하는 동안 빠른 반환으로 예제를 단순화했지만 예제에 수학이 포함되어 있지 않기 때문에 여전히 문제가 있습니다. 내 환경에서 누락 된 것이 있습니까?
참고 : 문제없이 정수를 반환 할 수 있습니다.
#include <stdio.h>
int main() {
float e = simple_float();
printf("after return : %.2f\n", e);
return 0;
}
float simple_float() {
float a = 5.63129;
printf("before return : %.2f\n", a);
return 5.63129;
}
그러나 출력은 다음과 같이 표시됩니다.
gcc / clang을 시도해도 컴파일되지 않습니다. 나는 비주얼 C가 이것을 허용한다는 것에 놀랐다. 더 엄격한 설정이 없습니까?
기본적으로 C는 모든 함수의 반환 유형을 'int'로 가정합니다. 따라서 함수를 사전에 선언하십시오. 어쨌든 좋은 방법입니다. 참고로, C99 호환 컴파일러의 오류 :
foo.c:6:14: warning: implicit declaration of function 'simple_float' is invalid in
C99 [-Wimplicit-function-declaration]
float e = simple_float();
^
foo.c:12:7: error: conflicting types for 'simple_float'
float simple_float() {
^
foo.c:6:14: note: previous implicit declaration is here
float e = simple_float();
^
1 warning and 1 error generated.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다