Здравствуйте, Abyx, Вы писали:
A>>>sizeof(S), который не меньше суммы sizeof ее членов. выравнивание не указано, и компилятор может использовать любое выравнивание.
A>>>btw, в своем ответе Вы забыли про alignment=1
AP>>спасибо, а на практике это 8-битные процы, аля atmega, z80, i8080?
A>на практике это #pragma pack(1) и например передача структур по сети
или опции компилятора
A>Вы имеете ввиду такой код?
A>A>int sum = 0;
A>int a, b;
A>void thread_fn()
A>{
A> a = 3;
A> b = 1;
A> if (b == 1)
A> sum += a;
A>}
A>int main()
A>{
A> thread t1(thread_fn);
A> thread t2(thread_fn);
A> t1.join();
A> t2.join();
A> return sum;
A>}
A>
A>так sum всегда будет 6, в любом потоке перед if a и b будут 3 и 1
Даже при выполнении этих ниток на двух разных процессорах?