#include <iostream>
#include <stdint.h>
void a()
{
uint32_t i;
*(volatile uint32_t *)&i = 42;
volatile uint8_t * c = reinterpret_cast<volatile uint8_t *>(&i);
c[0] = 0;
c[1] = 0;
c[2] = 0;
c[3] = 0;
std::cout << "i = " << *(volatile int *)&i << std::endl;
}
void b()
{
uint32_t i;
*(volatile uint32_t *)&i = 42;
volatile uint16_t * s = reinterpret_cast<volatile uint16_t *>(&i);
s[0] = 0;
s[1] = 0;
std::cout << "i = " << *(volatile uint32_t *)&i << std::endl;
}
int main()
{
a();
b();
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW50Lmg+Cgp2b2lkIGEoKQp7CiAgICAgICAgdWludDMyX3QgaTsKICAgICAgICAqKHZvbGF0aWxlIHVpbnQzMl90ICopJmkgPSA0MjsKIAogICAgICAgIHZvbGF0aWxlIHVpbnQ4X3QgKiBjID0gcmVpbnRlcnByZXRfY2FzdDx2b2xhdGlsZSB1aW50OF90ICo+KCZpKTsKICAgICAgICBjWzBdID0gMDsKICAgICAgICBjWzFdID0gMDsKICAgICAgICBjWzJdID0gMDsKICAgICAgICBjWzNdID0gMDsKIAogICAgICAgIHN0ZDo6Y291dCA8PCAiaSA9ICIgPDwgKih2b2xhdGlsZSBpbnQgKikmaSA8PCBzdGQ6OmVuZGw7Cn0KCnZvaWQgYigpCnsKICAgICAgICB1aW50MzJfdCBpOwogICAgICAgICoodm9sYXRpbGUgdWludDMyX3QgKikmaSA9IDQyOwoKICAgICAgICB2b2xhdGlsZSB1aW50MTZfdCAqIHMgPSByZWludGVycHJldF9jYXN0PHZvbGF0aWxlIHVpbnQxNl90ICo+KCZpKTsKICAgICAgICBzWzBdID0gMDsKICAgICAgICBzWzFdID0gMDsKCiAgICAgICAgc3RkOjpjb3V0IDw8ICJpID0gIiA8PCAqKHZvbGF0aWxlIHVpbnQzMl90ICopJmkgPDwgc3RkOjplbmRsOwp9CgppbnQgbWFpbigpCnsKCWEoKTsKCWIoKTsKfQ==