Недавно у меня было интервью с компанией-разработчиком программного обеспечения, которая задала мне следующий вопрос:
Можете ли вы описать мне, что добавляет изменчивость перед переменными? Можете ли вы объяснить мне, почему это важно?
Большинство моих знаний о программировании взяты из C, но позиция работы для С# (я думал, что могу добавить этот бит информации, если это необходимо для конкретного вопроса)
Я ответил, сказав, что просто позволяет компилятору знать, что переменная может использоваться в процессах или потоках и что она не должна использовать оптимизацию для этой переменной; так как оптимизация может ухудшить поведение. В двух словах это предупреждение для компилятора.
По словам интервьюера, однако, это наоборот, а ключевое слово volatile предупреждает ОС, а не компилятор.
Я был немного озадачен этим, поэтому я провел некоторое исследование и фактически нашел противоречивые ответы! Некоторые источники говорят об этом для компилятора, а другие - для ОС.
Что это? Различается ли он по языку?