Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Общие вопросы > Restrict |
Автор: sergioK1 11.2.2011, 23:59 |
теоретически все написано например здесь (http://publib.boulder.ibm.com/infocenter/comphelp/v7v91/index.jsp?topic=%2Fcom.ibm.vacpp7a.doc%2Flanguage%2Fref%2Fclrc03restrict_type_qualifier.htm) в реальной жизни насколько это нужно? , если у кого есть пример ? |
Автор: xvr 14.2.2011, 13:14 |
Это нужно исключительно для оптимизатора. В подавляющем большинстве вычислительных алгоритмов используются массивы данных. Из за особенности представления данных в С/С++ эти массивы при вызовах вычислительных процедур передаются как указатели. При этом оптимизатор не может применить большинство цикловых (и не только) оптимизаций, т.к. обращение через одни указатель потенциально может затронуть данные по любому другому указателю. Т.е. все данные во всех массивах оказываются потенциально зависимыми ![]() Эта проблема частично решается глобальным анализом (всей программы), но это не всегда возможно (да и не все компиляторы поддерживают). Ключевое слово restrict переносит весь груз ответственности за применимость оптимизаций на программиста ![]() |