ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
9 мая
1406939 Топик полностью
VladislavS. (24.02.2024 10:47, просмотров: 152) ответил Cкpипaч на Это не я сказал. Но в общем, я бы под "контролируя" понял осознание программистом в какие в принципе конструкции выливается то, что он пишет. Утрируя, на уровне как выполняется данное конкретное присвоение? Как пересылка байта из регистра в регистр или как создание в куче мегабайтных объектов, с инициализацией их по сети и только потом пересылкой одного байта?
Что-то типа. С опытом у программиста появляются "волшебные очки", которыми он сквозь код видит. 

Например, код зануления BSS из стартапа.

extern uint32_t _sbss[], _ebss[];

for (volatile uint32_t *pDst = _sbss; pDst != _ebss; *pDst++ = 0) ; // Zero -> BSS

Как думаете, что GCC сделает с volatile и без volatile? А на -О3 или -Os?


Но вообще, всё намного сложнее при написании кода под оптимизирующий компилятор.