web-dev-qa-db-fra.com

À quoi sert le mot-clé "volatile" apparaissant dans un indice de tableau?

Pendant que je parcourais cppreference, j'ai vu un tableau de type étrange dans des paramètres de fonction comme celui-ci:

void f(double x[volatile], const double y[volatile]);

Alors, à quoi sert le mot-clé volatile qui apparaît dans un indice de tableau? Qu'est ce que ça fait?

43
msc

Le mot clé volatile est utilisé pour déclarer un type de tableau d'un paramètre de fonction.

Ici, double x[volatile] est équivalent à double * volatile x.

cppreference dit:

Dans une déclaration de fonction, le mot-clé volatile peut apparaître à l'intérieur des crochets utilisés pour déclarer un type de tableau d'un paramètre de fonction. Il qualifie le type de pointeur auquel le type de tableau est transformé. Les deux déclarations suivantes déclarent la même fonction:

void f(double x[volatile], const double y[volatile]);

void f(double * volatile x, const double * volatile y);

Cette syntaxe n'est valable qu'en langage C dans les paramètres de fonction.

40
msc