15.05.2017, 14:08
|
|
Гражданин KAZUS.RU
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
|
Re: ресурсы МК
Не то чтобы путаю, просто рекомендуют не надеяться на автоматическую инициализацию нулями. Я и забыл о ней.
|
|
|
|
15.05.2017, 14:33
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: ресурсы МК
ampy, ясно. А на что же тогда надеяться? Если
и
PHP код:
|
int variable = 0;
|
одно и тоже - во втором случае, при инициализации, второй раз ноль записываться в эту переменную не будет. Это, конечно же, касается только глобальных и статических локальных переменных.
|
|
|
|
15.05.2017, 15:49
|
|
Гражданин KAZUS.RU
Регистрация: 22.07.2007
Адрес: Владивосток
Сообщений: 984
Сказал спасибо: 435
Сказали Спасибо 375 раз(а) в 197 сообщении(ях)
|
Re: ресурсы МК
Сообщение от H4LF
|
ampy, ясно. А на что же тогда надеяться? Если
и
PHP код:
|
int variable = 0;
|
одно и тоже - во втором случае, при инициализации, второй раз ноль записываться в эту переменную не будет. Это, конечно же, касается только глобальных и статических локальных переменных.
|
Если покажете такой как вверху код в серьезном проекте, ну, не школьном, то я подумаю Я вроде не встречал.
|
|
|
|
15.05.2017, 21:41
|
|
Вид на жительство
Регистрация: 10.06.2007
Сообщений: 429
Сказал спасибо: 34
Сказали Спасибо 51 раз(а) в 47 сообщении(ях)
|
Re: ресурсы МК
ampy, я говорил о том, что результат один и тот же. Можете скомпилировать одну и ту же программу с первым вариантом и со вторым, а потом сравнить бинарники - никакой разницы не будет. При int variable = 0; второй раз эта переменная зануляться не будет. Вот что я хотел донести. А пишут так(явную инициализацию), потому что это как минимум нагляднее и привычнее. Да и надёжнее, в каком-то смысле, тоже.
Ну и цитата из стандарта:
Цитата:
|
If an object that has automatic storage duration is not initialized explicitly, its value is indeterminate. If an object that has static storage duration is not initialized explicitly, then:
-- if it has arithmetic type, it is initialized to (positive or unsigned) zero;
-- if it is an aggregate, every member is initialized (recursively) according to these rules;
-- if it is a union, the first named member is initialized (recursively) according to these rules.
|
|
|
|
|
08.08.2017, 18:47
|
|
Частый гость
Регистрация: 30.03.2005
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: ресурсы МК
В раздел bss включают и стек.
_Min_Heap_Size = 0x400; /* required amount of heap */
_Min_Stack_Size = 0x800; /* required amount of stack */
PS. Достаточно для устранения "код ошибки 010" при использовании USB MSD.
|
|
|
|
08.08.2017, 18:52
|
|
Заблокирован
Регистрация: 07.09.2014
Адрес: В Кремле!
Сообщений: 4,486
Сказал спасибо: 396
Сказали Спасибо 2,220 раз(а) в 1,319 сообщении(ях)
|
Re: ресурсы МК
В раздел bss стек не включается. Потому что стек - это непостоянная, изменчивая материя. А то, что определяется в функциях как static int a, оно помещается не в стеке, а вне его пределов.
Heap - это не стек, это так называемая куча, из которой динамически выделяется память при помощи malloc.
Если не используете динамическое выделение памяти, то кучу не надо раздувать.
Последний раз редактировалось NewWriter; 08.08.2017 в 18:57.
|
|
|
|
09.08.2017, 09:43
|
|
Частый гость
Регистрация: 30.03.2005
Сообщений: 11
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
|
Re: ресурсы МК
Хотел обяснить, что необходимо брать во внимание кучу и стек чтоб расчитывать свои ресурсы.
|
|
|
|
09.08.2017, 20:25
|
|
Гражданин KAZUS.RU
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
|
Re: ресурсы МК
Сообщение от ampy
|
Если покажете такой как вверху код в серьезном проекте, ну, не школьном, то я подумаю Я вроде не встречал.
|
Никакой код при этом не генерируется.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 18:21.
|
|