реклама на сайте
подробности

 
 
> Atmega8 и tiny2313
na1s
сообщение Dec 12 2008, 20:35
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 87
Регистрация: 30-07-07
Из: Челябинск
Пользователь №: 29 459



Был код для меги8. Меги не было купил тини.Теперь код не влезает и iar пишет не хватает места. У меня используется stdio.h Если его удалить намного уменьшиться код? И вообще как-нибудь можно соптимизировать ко, чтоб он влез? Оптимизация в иаре стоит максимальная.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Dec 13 2008, 18:00
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(na1s @ Dec 12 2008, 22:35) *
У меня используется stdio.h Если его удалить намного уменьшиться код?
Не поверите, то две программы:
Код
file1.c:
int main()
{
    return 0;
}

file2.c:
#include <stdio.h>
int main()
{
    return 0;
}
имеют абсолютно одинаковый размер и код совпадающий побайтно.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 13 2008, 18:58
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(Сергей Борщ @ Dec 13 2008, 21:00) *
Не поверите, то две программы:
Код
file1.c:
int main()
{
    return 0;
}

file2.c:
#include <stdio.h>
int main()
{
    return 0;
}
имеют абсолютно одинаковый размер и код совпадающий побайтно.
ГЫ smile.gif а если return 0 убрать? wink.gif


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 13 2008, 19:25
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ARV @ Dec 13 2008, 20:58) *
ГЫ smile.gif а если return 0 убрать? wink.gif
Получим предупреждение, что функция, возвращающая int на самом деле ничего не возвращает.
Этим примером я хотел показать, что само по себе подключение stdio.h не добавляет ни байта в результирующий код. Ибо в этом файле описаны лишь прототипы функций. Код будет добавляться, если какие-либо из этих функций использованы в коде. Поэтому фраза "У меня используется stdio.h" несет ровно ноль информации.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
ARV
сообщение Dec 13 2008, 19:49
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(Сергей Борщ @ Dec 13 2008, 22:25) *
Получим предупреждение, что функция, возвращающая int на самом деле ничего не возвращает.
да я шутканул smile.gif однако, avr-gcc вроде не предупреждает об этом... во всяком случае, для main() не замечал ни разу...


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Dec 14 2008, 02:37
Сообщение #6


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(ARV @ Dec 13 2008, 21:49) *
однако, avr-gcc вроде не предупреждает об этом... во всяком случае, для main() не замечал ни разу...
Извиняюсь перед na1s за отклонение от его темы.
Предупреждает:
Код
D:\Projects>echo int main() {} >test.c && gcc -Wall test.c
test.c: In function `main':
test.c:1: warning: control reaches end of non-void function


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 22:03
Рейтинг@Mail.ru


Страница сгенерированна за 0.01396 секунд с 7
ELECTRONIX ©2004-2016