0
나는 sprintf를sprintf를 코드
#include <reg52.h>
char output_arr[7];
void print_to_arr(float val)
{
int integer, fractional, temp = 0, i, ni = 2;
float fract;
integer = (int)val;
fract = val - (float)integer;
fract = fract *1000;
fractional = (int)fract;
for(i=0; i<=2; i++)
{
temp = integer%10;
integer = integer/10;
output_arr[ni - i] = temp+48;
}
temp = 0;
output_arr[3] = '.';
for(i=0; i<=2; i++)
{
temp = fractional%10;
fractional = fractional/10;
output_arr[(ni+4) - i] = temp+48;
}
temp = 0;
}
을 위해 다음과 같은 기능을 작성하고이를 위해 코드 크기는
Program Size: data=36.0 xdata=0 code=1112
사람이 줄이는 방법으로 나를 간염 주실 것입니다 (임베디드) 가능한 최소한의 밸류에 코드 크기?
나는'gcc가 -Os' AMD64에서 컴파일하고는 명령 텍스트의 111 바이트로 제공됩니다. 1111 (바이트, 아마도)를 얻기 위해 사용하는 컴파일러와 옵션은 무엇입니까? –
'대상 1' 컴파일 sprintf_test.c ... 가 연결 ... 프로그램 크기 내가 카일의 C 를 사용하고 여기에 그것이 빌드 대상을 표시 무엇 : 데이터 = 36.0 XDATA = 0 코드 = 1112 "sprintf_test" - 0 오류 (들), 0 경고 (들). –
'OPTIMIZE (11, SIZE)'시도해 보셨습니까? 여기 참조 : http://www.keil.com/support/man/docs/c51/c51_optimize.htm를 실제 알고리즘을보고하지 –