Невизначена поведінка

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Неви́значена поведі́нка (англ. Undefined behavior) — властивість деяких мов програмування (Найбільш помітно в C) залишати результат деяких операцій невизначеним конкретно. Ця міра призводить до спрощення специфікації і деякому підвищенню гнучкості подібних мов (що часто характеризуються відсутністю вбудованої перевірки на границю масиву, і т. д.).

В мові Сі, наприклад, використання змінної до її ініціалізації призводить до невизначеної поведінки. Згідно зі специфікацією компілятор повинен в даному випадку зробити щось, що може здатися найефективнішим/простим. Невизначена поведінка виникає при спробі звернення до змінної.

Ще один приклад невизначеної поведінки: незвичайна поведінка з ANSI-директивою «#pragma». Згідно зі специфікацією мови компіляторам надана повна свобода при обробці даної конструкції. До версії 1.17 компілятор GCC при знаходженні в коді даної директиви намагався запустити Emacs з грою «Ханойські вежі».

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]