Если ваш компилятор не поддерживает ключевое слово restrict
, просто удалите это ключевое слово (a) .
Он используется для указания компилятору, что вы (разработчик) обещаете, что указатели следуют определенным свойствам, включающим псевдонимы, и это, в свою очередь, позволяет компилятору выполнять определенные оптимизации, которые в противном случае не обязательно были бы безопасными.
Если вы исключите это ключевое слово в компиляторе, который его поддерживает, это предотвратит эту оптимизацию (небольшой недостаток).
Если вы укажете компиляторам, что не поддерживает это ключевое слово, недостатком будет ноль (так как они все равно не поддерживают эту оптимизацию), а повышение будет значительным, как в "это будет скомпилировать для вас ": -)
(a) Возможно, вы захотите сначала убедиться, что вы компилируете в режиме C99. Хотя может быть правдой, если вы используете более старый gcc
, который не понимает restrict
, также возможно, что вы не компилируете в режиме C99, например, с -std=c99
( gcc
документы, похоже, указывают, что restrict
поддерживается даже до версии 3.0).
Если по какой-то причине вы не можете активировать режим C99, я думаю, что gcc
имеет расширение, позволяющее использовать __restrict
.