Si su compilador no admite la palabra clave restrict
, simplemente elimine esa palabra clave (a).
Se utiliza para indicar al compilador que usted (el desarrollador) promete que los punteros siguen ciertas propiedades que implican aliasing, y esto, a su vez, permite al compilador realizar ciertas optimizaciones que de otro modo no serían necesariamente seguras.
Si deja esa palabra clave en un compilador que la admite, impide esas optimizaciones (leve desventaja).
Si lo deja fuera de compiladores que No apoyo esa palabra clave, el inconveniente es nula (ya que no son compatibles con esas optimizaciones de todos modos) y la ventaja es considerable, como en "se compilará para usted ":-)
(a) es posible que desee asegurarse de que está en el modo de compilación C99 primera. Si bien puede ser cierto que usted está usando un viejo gcc
que no entiende restrict
, es igualmente posible que usted no está en el modo de compilación C99, por ejemplo, con -std=c99
(gcc
documentos parecen indicar que ha sido apoyado restrict
incluso de regreso a la versión 3.0).
Si, por algún motivo no puede activar el modo C99, creo que gcc
tiene una extensión que le permite usar __restrict
.
Forma fácil de sacar la palabra clave (si es necesario): use '-Drestrict' en la línea de comando. El preprocesador se lo quitará y no tendrá que editar ningún código. Lo hace fácil de volver en el futuro si también se mueve a un compilador C99. –