Является ли volatile правильным способом сделать однобайтный атомарный в C / C ++?

Я знаю, что volatile, например, не обеспечивает атомарность для int, но делает ли это, если вы обращаетесь к одному байту? Семантика требует, чтобы операции записи и чтения всегда производились из памяти, если я правильно помню.

Или, другими словами: Всегда ли ЦП читают и записывают байты атомарно?

11
задан Axel Gneiting 8 February 2011 в 17:34
поделиться