#полезное
🤯 Знаете ли вы, что компилятор может удалить ваш код?
Компиляторы C всегда стараются сделать ваш код максимально быстрым. Один из инструментов для этого называется Dead Code Elimination (удаление «мертвого кода»).
Если какая-то часть кода не влияет на наблюдаемое поведение, например, вывод через printf, ввод/вывод, изменение глобального состояния — компилятор пытается безопасно её удалить.
Рассмотрим пример на изображении: если вы никогда не используете sum позже, например, никогда не выводите его, компилятор понимает, что этот цикл бесполезен. Весь цикл будет удалён.
В результате бинарник может работать значительно быстрее. Но если вы добавите printf("%d\n", sum);, компилятор сохранит этот цикл, так как он влияет на наблюдаемое поведение. Это также правило As-If.
👉Новости 👉База вопросов
Post #378
329

- 👍 2
- 🤯 1