ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
1452365 Топик полностью
AlexBi (30.07.2024 16:18, просмотров: 93) ответил AlexBi на Смотрю примеры кода от Artery и немного не понимаю почему оно написано так, может я чего-то не знаю. Их код такой
С помощью godbolt.org проверил как влияет volatile в параметре функции. При наличии volatile переданное через регистр значение сохраняется в стек и дальше читается из стека, оптимизация практически не работает. Без volatile все хорошо оптимизируется. Причем в объявлении функции можно написать volatile, а в реализации не писать, или наоборот, компилятор предупреждений не выдает. 

При дальнейшем изучении исходника обнаружилось, что переменная tcp_timer объявлена в этом же файле так

volatile uint32_t tcp_timer = 0;

Но я не нашел где бы она еще использовалась. Возможно ее так объявили на всякий случай, потом в параметр функции добавили volatile, на всякий случай, что бы сравнивались переменные одинакового типа.