Код: Выделить всё
*buf++ = 0;
Я понимаю, что, вероятно, недостаточно информации, чтобы решить эту проблему, но, возможно, кто -то может предложить, что может произойти, и где можно найти, чтобы посмотреть, что это может произойти? Очень драгоценный ресурс. < /p>
Вот код для функции, которая вызывает проблему. Некоторые из кода были прокомментированы, потому что я пытался именно изолировать, что именно в этой функции вызвало внезапное увеличение. Строка 49 является рассматриваемым утверждением. Если я прокомментирую это утверждение и не внесу никаких других изменений в программу, размер текста значительно падает.
Код: Выделить всё
#include "Robot.h"
#include "Util.h"
void dtoa(char * buf, double value, int decimals)
{
if (decimals > MAX_DTOS_DECIMALS)
{
decimals = MAX_DTOS_DECIMALS;
}
if (value < 0)
{
*buf++ = '-';
value = -value;
}
if (value > 9223372036854775807.0)
{
*buf++ = '*';
}
else
{
double avg = 0.5;
for (int i = 0 ; i < decimals ; i++)
{
avg /= 10;
}
value += avg;
uint64_t iValue = (uint64_t) value;
if (iValue == 0)
{
// *buf++ = '0';
}
else
{
int i;
char digits[20];
for (i = 0 ; (iValue != 0) && (i < (int) sizeof(digits)) ; i++)
{
digits[i] = (iValue % 10) + '0';
iValue /= 10;
}
// for (--i ; i >= 0 ; i--)
{
*buf++ = 0;//digits[i];
Подробнее здесь: [url]https://stackoverflow.com/questions/79643206/adding-a-single-simple-line-to-a-c-program-almost-doubles-the-size-of-the-text[/url]