Question

Je l'ai ai étudier l'effet de __restricting certains pointeurs dans un C ++ -. Code, lors de la compilation via le GCC-compilateur

Il se que non seulement l'exécution reste tout à fait le même, mais l'exécutable ne semble pas avoir changé, la taille en octets est exactement le même que précédemment.

Mon GCC version est

gcc version 4.3.2 [gcc-4_3-branch revision 141291] (SUSE Linux)

et bien qu'il accepte cette C ++ - l'extension lors de l'analyse, il ne semble pas considérer lors du montage du code. Donc, il y a soit une raison, le compilateur ne sait pas comment utiliser cette information sémantique, ou le traitement de ces informations est désactivé completly.

Le code effectue beaucoup de crissement numéro, il aimerait avoir permis à des fins de test. Pouvez-vous aider?

Était-ce utile?

La solution

qualificatifs de restrict sont essentiellement un moyen pour l'utilisateur d'aider le compilateur à effectuer certaines optimisations liées à l'aliasing. Ils n'ont un effet si ces possibilités d'optimisation sont déjà présentes dans le code, donc l'utilisation restrict leur permet tout simplement dans les situations où le compilateur avait auparavant d'utiliser un « plus sûr » génération de code (non-optimisation). Dans d'autres contextes restrict aura aucun effet.

Alors, vous a ajouté quelques qualificatifs de restrict à votre code. Mais aucun d'entre eux a été utilisé dans le contexte où ils en fait la matière, à savoir où ils donnent effectivement le compilateur une plus grande liberté pour optimiser le code? Sinon, vous n'êtes pas censé attendre votre code au changement.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top