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

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

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

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

Див. також

Посилання


This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.