2016-05-02 5 views
4

В настоящее время, глядя на this руководство по использованию OpenMP с/C программ C++ и интересно, что они подразумевают под creating a magic function в следующей цитаты:Что такое магия функция в C/C++ (в отношении OpenMP)

Внутренне , GCC реализует это, создавая магическую функцию, и перемещает связанный код в эту функцию, так что все переменные , объявленные в этом блоке, становятся локальными переменными этой функции (и, следовательно, locals для каждого потока). ICC, с другой стороны, использует механизм, напоминающий fork(), и не создает волшебную функцию . Обе реализации, конечно, действительны и семантически идентичны.

+2

Неправильное руководство. ICC также выполняет функцию, обозначающую то же, что и GCC. Рабочая среда Intel OpenMP даже содержит уровень совместимости GCC и может использоваться с программами, скомпилированными с помощью GCC. Компилятор PGI - тот, который этого не делает. –

+1

См. [Этот ответ] (http://stackoverflow.com/a/18789429/1374437) для некоторого понимания. –

ответ

5

Функция «магия» - это функция, созданная компилятором - ее магия возникает из-за того, что вам, как программисту, ничего не нужно делать, это «магически сделано для вас».

Смежные вопросы