Size: a a a

2020 November 19

P.

Pavel . in Deus Volt!
VadimAnimeEmbedder
А можно ссылку на то, где описано в какие секции какие объявления идут. Именно для c++.
C++ приносит только 2 доп вызова относительно С. Рекомендую посмотреть сам стандарт С ISO/IEC 9899:2011
источник

V

VadimAnimeEmbedder in Deus Volt!
Ок, спасибо.
источник

V

VadimAnimeEmbedder in Deus Volt!
Pavel .
C++ приносит только 2 доп вызова относительно С. Рекомендую посмотреть сам стандарт С ISO/IEC 9899:2011
Еще вопрос. А как с объектами быть? Я понимаю, что структуры  инициализации или буферы еще можно static. А как быть с объектами классов глобальными? Чтобы с ними работать за пределами файла.
источник

V

VadimAnimeEmbedder in Deus Volt!
Но при этом не дергая memset.
источник

P.

Pavel . in Deus Volt!
VadimAnimeEmbedder
Еще вопрос. А как с объектами быть? Я понимаю, что структуры  инициализации или буферы еще можно static. А как быть с объектами классов глобальными? Чтобы с ними работать за пределами файла.
Простыми словами
.data это все глобальные объекты
.bss это вся статика (статик в файле, в функции и т.д.) что не Требует инициализации, а только зануляется (экв. =0)
Объекты же(классы) должны попасть в дату, т.к. требуют специфичной инициализации (если они глобальны/статичны)
источник

V

VadimAnimeEmbedder in Deus Volt!
Pavel .
Простыми словами
.data это все глобальные объекты
.bss это вся статика (статик в файле, в функции и т.д.) что не Требует инициализации, а только зануляется (экв. =0)
Объекты же(классы) должны попасть в дату, т.к. требуют специфичной инициализации (если они глобальны/статичны)
Ок. Так и подозревал. Но почему тогда для них тоже требуется memset?
источник

V

VadimAnimeEmbedder in Deus Volt!
Пусть все кладет в data. Включая и переменные с нулями. Или аккуратно пусть разнесет часть данных с нулями в data, а часть в bss.
источник

V

VadimAnimeEmbedder in Deus Volt!
Зачем memset дергать?
источник

P.

Pavel . in Deus Volt!
VadimAnimeEmbedder
Ок. Так и подозревал. Но почему тогда для них тоже требуется memset?
Зависит от реализации startup кода. Там вполне может вызваться memset для зануления bss
источник

V

VadimAnimeEmbedder in Deus Volt!
Pavel .
Зависит от реализации startup кода. Там вполне может вызваться memset для зануления bss
Зашел, проверил. Нет. Там просто ассемблером заполнение по счетчику. Кроме как объявить объект как static есть возможность указать компилятору, что все параметры этого объекта из коробки есть либо в data, либо bss?
источник

В

Василий in Deus Volt!
VadimAnimeEmbedder
Зашел, проверил. Нет. Там просто ассемблером заполнение по счетчику. Кроме как объявить объект как static есть возможность указать компилятору, что все параметры этого объекта из коробки есть либо в data, либо bss?
а что это sub_I_pwm_srv_ch_os_data ?
источник

V

VadimAnimeEmbedder in Deus Volt!
Это C++ компилятор так имя переменной data изменил на основе файла, в котором лежит.
источник

V

VadimAnimeEmbedder in Deus Volt!
Тот мем про автоименование.
источник

V

VadimAnimeEmbedder in Deus Volt!
Промежуточное имя.
источник

В

Василий in Deus Volt!
собственно вопрос, а где memset ?
источник

V

VadimAnimeEmbedder in Deus Volt!
В ошибке.
источник

V

VadimAnimeEmbedder in Deus Volt!
Он неявно дергается.
источник

V

VadimAnimeEmbedder in Deus Volt!
Для того чтобы заполнить и без того заполненную нулями область bss нулями еще раз.
источник

V

VadimAnimeEmbedder in Deus Volt!
В рамках этого массива.
источник

В

Василий in Deus Volt!
ну и пусть дёргается
источник