J’étais toujours incertain, que le mot-clé restrict signifie en C++ ?
Cela signifie deux ou plus pointeur donnée à la fonction ne se chevauche pas ? Quoi que cela signifie ?
J’étais toujours incertain, que le mot-clé restrict signifie en C++ ?
Cela signifie deux ou plus pointeur donnée à la fonction ne se chevauche pas ? Quoi que cela signifie ?
Dans son livre, l'Optimisation de la Mémoire, Christer Ericsson dit que, en restrict
ne fait pas partie de la norme C++ encore, qu'il est soutenu par de nombreux compilateurs et il recommande de l'utiliser lorsqu'elle est disponible:
restreindre mot-clé
! Nouveau à 1999 ANSI/ISO C standard
! Pas en C++ standard, mais pris en charge par de nombreux compilateurs C++
! Un conseil, donc peut ne rien faire et à toujours être conforme
Restreindre l'qualifiés pointeur (ou une référence)...
! ...est en fait un promesse au compilateur que pour la la portée du pointeur, la cible du pointeur de la souris uniquement être accessible par le pointeur (et des pointeurs copié à partir d'elle).
Dans les compilateurs C++ qui le prennent en charge, il devrait probablement se comportent de la même comme en C.
Voir cette SORTE de post pour plus de détails: Réaliste de l'utilisation du C99 "limiter" mot?
Prendre une demi-heure à parcourir Ericson papier, c'est intéressant et vaut à la fois.
Modifier
J'ai aussi trouvé que IBM AIX compilateur C/C++ prend en charge l' __restrict__
mot-clé.
g++ semble également à l'appui de ce que le programme suivant compile correctement sur g++:
#include <stdio.h>
int foo(int * __restrict__ a, int * __restrict__ b) {
return *a + *b;
}
int main(void) {
int a = 1, b = 1, c;
c = foo(&a, &b);
printf("c == %d\n", c);
return 0;
}
J'ai aussi trouvé un article intéressant sur l'utilisation de l' restrict
:
Démystifier La Restreindre Mot-Clé
Edit2
J'ai couru à travers un article qui aborde spécifiquement l'utilisation de restreindre dans les programmes C++:
De charge de frapper les magasins et de l' __restreindre mot-clé
Aussi, Microsoft Visual C++ prend également en charge l' __restrict
mot-clé.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.