|
|
||
5. Изменение значения переменной |
||
Для изменения значения переменной в операционных системах Windows используется блокирующая функция InterlockedExchangeAdd, которая имеет следующий прототип: Эта функция прибавляет значение, заданное параметром increment, к переменной, адрес которой задан параметром IpAddend. Значение, возвращаемое функцией InterlockedExchangeAdd, равно старому значению изменяемой переменной. Замечание: Адрес изменяемой переменной, который задается параметром IpAddend, должен быть выровнен на границу слова, т. е. должен быть кратен 32. В листинге 7.4 приведен пример использования функции InterlockedExchangeAdd для взаимоисключающего увеличения значения переменной. Эта программа отличается от программы из листинга 7.3 только тем, что значение переменной п увеличивается не на 1, а на 10. Листинг 7.4. Пример использования функции InterlockedExchangeAdd |
||
#include <windows.h> volatile long n; void producer() void consumer() int main() |
||
|
||
5 |