Я создаю программу для микроконтроллера (RISC-V, если это имеет значение), и я столкнулся с проблемой с недостатком. У меня есть какой -то код, который компилируется на «текстовый» размер 6592 байтов. Но если я добавлю одну строку: < /p>
*buf++ = 0
< /code>
Размер текста изменяется на 10816. Это происходит только в том случае, если я добавляю эту строку в определенное место в определенной функции. Изображение), ни один из которых, кажется, не имеет никакого отношения к линии, которую я добавил. Именно эти дополнительные функции добавляют дополнительное использование памяти с объемным, исходящим от DivDF3 (0x6b4) и addDF3 (0x708). < /P>
Я понимаю, что, вероятно, недостаточно информации, чтобы решить эту проблему, но, возможно, кто -то может предложить, что может произойти и где посмотреть. Ресурс. Некоторые из кода были прокомментированы, потому что я пытался именно изолировать, что именно в этой функции вызвало внезапное увеличение. Строка 49 является рассматриваемой строкой. Если я прокомментирую эту строку и не сделаю никаких других изменений в программу размер «текста» значительно падает. < /P>
#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]
Я создаю программу для микроконтроллера (RISC-V, если это имеет значение), и я столкнулся с проблемой с недостатком. У меня есть какой -то код, который компилируется на «текстовый» размер 6592 байтов. Но если я добавлю одну строку: < /p> [code]*buf++ = 0 < /code> Размер текста изменяется на 10816. Это происходит только в том случае, если я добавляю эту строку в определенное место в определенной функции. Изображение), ни один из которых, кажется, не имеет никакого отношения к линии, которую я добавил. Именно эти дополнительные функции добавляют дополнительное использование памяти с объемным, исходящим от DivDF3 (0x6b4) и addDF3 (0x708). < /P> Я понимаю, что, вероятно, недостаточно информации, чтобы решить эту проблему, но, возможно, кто -то может предложить, что может произойти и где посмотреть. Ресурс. Некоторые из кода были прокомментированы, потому что я пытался именно изолировать, что именно в этой функции вызвало внезапное увеличение. Строка 49 является рассматриваемой строкой. Если я прокомментирую эту строку и не сделаю никаких других изменений в программу размер «текста» значительно падает. < /P> #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];
Я создаю программу для микроконтроллера (RISC-V, если это имеет значение), и я столкнулся с проблемой с недостатком. У меня есть какой -то код, который компилируется на «текстовый» размер 6592 байтов. Но если я добавлю одну строку:
*buf++ = 0
Я создаю программу для микроконтроллера (RISC-V, если это имеет значение), и я столкнулся с проблемой с недоумением. У меня есть какой -то код, который компилируется на текст размер 6592 байтов. Но, если я добавлю единый оператор:
*buf++ = 0;
Комментирование в атрибуте, который мой класс десериализации использует половины, количество времени, которое требует перевода данных в список моего класса. Ниже приведено минимальное количество кода для воспроизведения проблемы:
Вот атрибут:...
Комментирование в атрибуте, который мой класс десериализации использует половины, количество времени, которое требует перевода данных в список моего класса. Ниже приведено минимальное количество кода для воспроизведения проблемы:
Вот атрибут:...
Итак, на курсе Python на Coursera в Runestone Academy я получил такой вопрос:
Используйте понимание списка, чтобы создать список с именем lst2, который удваивает каждый элемент в списке, lst. >
lst = [ , привет , до свидания , , 4]
Вот мой код
lst2...