Давайте посмотрим эту строку кода C:sscanf, буквальное или указатель формата
if(sscanf(s, "%04d%02d%02d%02d%02d%02d", &year, &month, &day, &hour, &min, &sec) != EOF) {
// ... other stuff
}
Я использую Microchip C30 компилятор. 's' и другие переменные определены ранее. Размер всего моего кода: 237396 байтов.
Давайте попробуем изменить формат строки из буквального указателю:
const char *format = "%04d%02d%02d%02d%02d%02d";
if(sscanf(s, format, &year, &month, &day, &hour, &min, &sec) != EOF) {
// ... other stuff
}
Размер теперь: 243798 байт! Более 6 кБ!
Ожидаемое поведение?
Вы не можете просто посмотреть размер сгенерированного двоичного файла, по крайней мере, если он находится в сегментированном формате (вы знаете, отдельный код, данные и сегменты bss). Затем вам нужно посмотреть размер отдельных сегментов. –
Похоже, вам нужно отправить это поставщику компилятора. BTW, эта конфигурация Debug или Release? –
Я использую IDE, предоставленную продавцом пользовательской платы, которая завершает вызовы компилятору. Поэтому я могу видеть только размер используемого двоичного и RAM. Конфигурация - это релиз (нет отладочной). Для других изменений это кажется разумным, за исключением этого. – Mark