Darmowe Forum
Maj 19, 2024, 16:07:30
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 3969 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
gangem
pracadlazbrojarza
st-fu
storylife
magicznestworzenia11