_volatile__

0

Do czego służy słowo kluczowe volatile? Z góry dzięki.

0

Volatile jest modyfikatorem, który może wystąpić w deklaracji zmiennej. Zakazuje
on kompilatorowi stosowania "agresywnej optymalizacji" wobec tej zmiennej, ponieważ może być ona zmieniana w sposób którego kompilator nie rozumie:P (nie jest w stanie wykryć).

0

Dodam tylko tyle: volatile-ulotny,chwiejny,zmienny

0

Jak mocno kompilator może ingerować w kod przy optymalizacji?

0

Bardzo mocno moze ingerowac. Wystarczy powiedziec, ze moze cale linie kodu usuwac.

0

Ogolnie ten modyfikator okresla zmienna ktora jest modyfikowana przez czynniki zewnetrzne niezalezne od uzytkownika - mozesz nia monitorowac np.: stan portow, linii itp.

pzdr

1

Prosty przyklad...
mamy:

int a = 0;
...
a=5;
printf( "%i",a );

optymalizacja tego wyglada tak:

int a = 0;
...
a=5;
printf( "%i", 5);

(czyli jedno odwolanie sie do pamieci mniej, jak sobie ktos to na asma chce tlumaczyc)...
dodanie volatile_ jesli dobrze rozumiem, blokuje zmiane tej ostatniej linijki z "a" na "5"...

1 użytkowników online, w tym zalogowanych: 0, gości: 1