- posted
20 years ago
static & volatile
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
- Vote on answer
- posted
20 years ago
BB> Подскажите, чайнику, чем отличается объявление переменной как static от BB> присвоения ей атрибута volatile. Если можно поподробнее..
static определяет область видимости. Если переменная определена как static на уровне модуля, то ее область видмимости будет ограничена этим модулем. volatile запрещает применение оптимизации к этой переменной. То есть если ты напишешь
int a;
a = 1; a = 2;
То компилятор может посчитать, что первое присвоение не нужно, поскольку второе присваивает той же переменной другое значение.
Если определить как volatile int a;
a = 1; a = 2;
То это запретит такую оптимизацию и компилятор не будет оптимизировать и исключать первое присвоение.