static & volatile

Loading thread data ...
Reply to
Alex Mogilnikov

BB> Подскажите, чайнику, чем отличается объявление переменной как static от BB> присвоения ей атрибута volatile. Если можно поподробнее..

static определяет область видимости. Если переменная определена как static на уровне модуля, то ее область видмимости будет ограничена этим модулем. volatile запрещает применение оптимизации к этой переменной. То есть если ты напишешь

int a;

a = 1; a = 2;

То компилятор может посчитать, что первое присвоение не нужно, поскольку второе присваивает той же переменной другое значение.

Если определить как volatile int a;

a = 1; a = 2;

То это запретит такую оптимизацию и компилятор не будет оптимизировать и исключать первое присвоение.

Reply to
Andy Mozzhevilov

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.