Tengo un puntero int* p
y realizo algunas operaciones en un bucle. No modifico la memoria, solo leo. Si agrego const
al puntero (en ambos casos, const int* p
y int* const p
), ¿puede ayudar a un compilador a optimizar el código?¿Puede la adición de 'const' a un puntero ayudar a la optimización?
Conozco otros méritos de const
, como seguridad o auto-documentación, pregunto sobre este caso en particular. Reformulando la pregunta: ¿puede el const
dar al compilador alguna información útil (para optimización) alguna vez?
¿De verdad quieres decir 'int const * p'? O 'int * const p'? ¿Qué loop? ¿Qué estás iterando? –
Podrías hacerlo y comparar el código generado: -? – cnicutar
La única manera de determinar esto para una CPU, compilador, sistema operativo, etc. determinado es compararlo, y el resultado solo será válido para esta configuración particular, por supuesto. Me parece una optimización prematura. –