const et volatile s'applique sur ce qui les précède. S'il n'y a rien avant, on inverse et on recommence.
J'ai compris le début mais quand tu dis on recommence, ça veut dire quoi ?
PS: ce n'est pas un warning mais une erreur de compilation que l'on récolte sur le second exemple de code. Qui plus est,
a
est une constante (potentiellement en ROM, ou chargé directement en paramètre dans les instructions assembleurs), et pas juste une variable non modifiable.
Avec les bonnes options de compilations on obtient une erreur. Je viens de tester pour être sûr : avec -Wall
ou -pedantic
, on obtient bien un warning et j'obtiens l'erreur en rajoutant -Werror
(ce qui est bien normal). Mais ce que tu dis là m'intéresses, si elle est potentiellement chargée en ROM, on va droit à la catastrophe avec le code que j'ai donné. Alors ça m'interpelle que j'obtiens seulement un warning.