Darmowe Forum
Grudzieñ 22, 2024, 04:49:02
Witamy,
Go¶æ
.
Zaloguj siê
lub
zarejestruj
.
Czy dotar³ do Ciebie
email aktywacyjny?
1 Godzina
1 Dzieñ
1 Tydzieñ
1 Miesi±c
Zawsze
Zaloguj siê podaj±c nazwê u¿ytkownika, has³o i d³ugo¶æ sesji
Aktualno¶ci
: Forum zosta³o uruchomione!
Strona g³ówna
Pomoc
Zaloguj siê
Rejestracja
Darmowe Forum
>
C++
>
Podstawy C++ cz. I
>
Volatile - opis miennej w C++
Strony: [
1
]
« poprzedni
nastêpny »
Drukuj
Autor
W±tek: Volatile - opis miennej w C++ (Przeczytany 4108 razy)
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Volatile - opis miennej w C++
«
:
Marzec 24, 2012, 10:05:37 »
S³ówko
volatile
oznacza jednoznacznie ulotny.
Warto¶æ zmiennej te¿ nie zmieni siê dopóki sami tego nie uczynimy. Pewne zmienne mog± zostaæ zmodyfikowane bez naszaj woli, wiêcej mog± zostaæ zmienione bez naszej wiedzy. S± czasem pewne specyficzne sytuacje, kiedy warto¶æ zmiennej mo¿e ulec zmianie bez inicjatywy z naszej strony. Proszê wyobraziæ sobie tak± sytuacjê, piszemy program dla sterownika steruj±cego ilo¶ci± przep³ywaj±cego powietrza w silniku spalinowym. Przep³yw powietrza zmienia siê co kilkadziesi±t milisekund. Program powinien odczytywaæ warto¶æ przep³ywu co te kilkana¶cie milisekund inaczej mo¿e pojawiæ siê b³±d pomiarowy. Aby siê przed tym ustrzec stosuje siê w³a¶nie modyfikator volatile. Informuje on kompilator, ¿e dana zmienna zawiera ulotn± warto¶æ i na wszelki wypadek nale¿y j± kontrolowaæ czê¶ciej. Oczywi¶cie ten modyfikator jest zbêdny w programach pisanych na co dzieñ. W takich programach zmienne nie mog± siê zmieniaæ od tak sobie. Ten modyfikator jest natomiast przydatny je¶li opracowaæ oprogramowanie urz±dzeñ zewnêtrznych.
volatile int adam;
Zmienna zdefiniowana w taki sposób bêdzie bacznie kontrolowana przez procesor.
Zapisane
admin
Administrator
Ekspert
Wiadomo¶ci: 821
Odp: Volatile - opis miennej w C++
«
Odpowiedz #1 :
Marzec 24, 2012, 10:27:08 »
Przyk³ad programu wykorzystuj±cego zmienn± typu voltaire
#include <cstdlib>
#include <iostream>
#include <iostream>
#include <windows.h>
using namespace std;
volatile bool pilnuj = true;
int Dane = 0;
unsigned ThreadFunc1( void* pArguments ) {
while (pilnuj)
Sleep(0);
cout << "Dana = " << Dane << endl;
return 0;
}
unsigned ThreadFunc2( void* pArguments ) {
Sleep(2000);
Dane++;
pilnuj = false;
return 0;
}
int main() {
HANDLE hThread1, hThread2;
DWORD retCode;
hThread1 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&ThreadFunc1,
NULL, 0, NULL);
hThread2 = CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)&ThreadFunc2,
NULL, 0, NULL);
if (hThread1 == NULL || hThread2 == NULL) {
if (hThread1 != NULL) CloseHandle(hThread1);
if (hThread2 != NULL) CloseHandle(hThread2);
cout << "Do bani to pilnowanie." << endl;
return 1;
}
system("PAUSE");
return EXIT_SUCCESS; }
Zapisane
Strony: [
1
]
Drukuj
« poprzedni
nastêpny »
Skocz do:
Wybierz cel:
-----------------------------
Zadanie C++ lutego -Agnieszka
-----------------------------
=> Nowy dzia³
=> Zadanie
-----------------------------
E14
-----------------------------
=> DIV
=> Java Script
=> php
-----------------------------
Dla Magdy i Wojtka
-----------------------------
=> Liczby dwójkowe
-----------------------------
Przyk³ady stron internetowych
-----------------------------
=> Strona zbudowana z tabelek
-----------------------------
Podstawy PHP
-----------------------------
=> Przesy³anie danych z formularza php
=> Pêtle w php
-----------------------------
Java Script
-----------------------------
=> Java Script
-----------------------------
C++ Nowe rozdanie
-----------------------------
=> C++
-----------------------------
Java JDK
-----------------------------
=> Java ale nie Script
-----------------------------
Hyde Park
-----------------------------
=> Informacje
-----------------------------
C+++
-----------------------------
=> A Kuba powiedzia³
-----------------------------
Multimedia
-----------------------------
=> Photoshop
=> Nowy dzia³
=> Java Script
=> Corel
-----------------------------
Html-strony internetowe
-----------------------------
=> Podstawy HTML- ramki/ frames
=> Podstawy HTML- tabelki
-----------------------------
C++
-----------------------------
=> Podstawy C++ cz. I
=> Kompilatory C++
=> Programowanie obiektowe w C++
=> Problem w C++
=> Podstawy
=> C++ po raz pierwszy
-----------------------------
Turbo Pascal
-----------------------------
=> Turbo Pascal semestr II
=> Projekt A¦KA
=> Turbo Pascal semestr I
=> Podstawy Turbo Pascal
£adowanie...
Polityka cookies
Darmowe Fora
|
Darmowe Forum
shaggydogss
articz
zlotasiodemka
spw
moikrewni