pointer::read_volatile
๋ฐ pointer::write_volatile
์ ์ฌ์ฉํ์ธ์.
- ์ฐธ์กฐ๋ฅผ ์ ์งํ์ง ๋ง์ธ์.
addr_of!
๋ฅผ ์ฌ์ฉํ๋ฉด ์์ ์ฉ๋์ ์ฐธ์กฐ๋ฅผ ๋ง๋ค์ง ์๊ณ ๋ ๊ตฌ์กฐ์ฒด ํ๋๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- ํ๋ฐ์ฑ(volatile) ์ก์ธ์ค: ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ ์์
์ด ๋ถ์ ํจ๊ณผ(side effect)๋ฅผ ๋๋ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ์ปดํ์ผ๋ฌ๋ ํ๋์จ์ด๊ฐ ์์๋ก ์ด๋ฅผ ์ฝ๊ธฐ ์ฐ๊ธฐ ์์
์ ์์๋ฅผ ๋ฐ๊พธ๊ฑฐ๋, ์ค๋ณตํด์ ์ํํ๊ฑฐ๋ ๋๋ ์ ๊ฑฐํ์ง ๋ชปํ๊ฒ ํฉ๋๋ค.
- ์ผ๋ฐ์ ์ผ๋ก ์ฐ๊ณ ๋ ํ ์ฝ์ผ๋ฉด(์: ๋ณ๊ฒฝ ๊ฐ๋ฅํ ์ฐธ์กฐ๋ฅผ ํตํด) ์ปดํ์ผ๋ฌ๋ ์ฝ์ ๊ฐ์ด ๋ฐฉ๊ธ ์ด ๊ฐ๊ณผ ๋์ผํ๋ค๊ณ ๊ฐ์ ํ๊ณ ์ค์ ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ์ง ์์ ์ ์์ต๋๋ค.
- ํ๋์จ์ด์ ๋ํ ํ๋ฐ์ฑ ์ก์ธ์ค๋ฅผ ์ํ ์ผ๋ถ ๊ธฐ์กด ํฌ๋ ์ดํธ๋ ์ฐธ์กฐ๋ฅผ ์ ์งํ์ง๋ง ์ด๋ ์ฌ๋ฐ๋ฅธ ๊ฒ์ด ์๋๋๋ค. ์ฐธ์กฐ๊ฐ ์์ ๋๋ง๋ค ์ปดํ์ผ๋ฌ๋ ์ด๋ฅผ ์ญ์ฐธ์กฐํ๋๋ก ์ ํํ ์ ์์ต๋๋ค.
addr_of!
๋งคํฌ๋ก๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์กฐ์ฒด ํฌ์ธํฐ์์ ๊ตฌ์กฐ์ฒด ํ๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ ธ์ต๋๋ค.