https://codebunny99.tistory.com/122
CPU ๋ฉ๋ชจ๋ฆฌ์ ๋ํด ํ์ตํ๊ธฐ
(ํ์) ๋ณ์ = ๋ฐ์ดํฐ =์ ๊ธฐ์ค์ผ๋ก ์ผ์ชฝ์ ๋ณ์, ์ค๋ฅธ์ชฝ์ ๋ฐ์ดํฐ๋ผ๊ณ ํ๋ค. count = 3 ์ฝ๋ (Code) ์์ญ:ํ๋ก๊ทธ๋จ์ "์๋ฆฌ์ฑ "์ด๋ผ๊ณ ์๊ฐํ ์ ์๋ค.์๋ฆฌ์ฑ ์๋ ์๋ฆฌ ๋ฐฉ๋ฒ(๋ช ๋ น์ด)๋ค์ด ์ ํ
codebunny99.tistory.com
์ ์ฅ ์ ํ ์ง์ ์ static
- ๋ณ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ฐ์ดํฐ (Data) ์์ญ์ ์ ์ฅ๋๋๋ก ํ๋ ๊ฒ์ด๋ค.
#include <stdio.h>
void sub() {
static int scount = 0;
int acount = 0;
printf("scount = %d\t", scount);
printf("acount = %d\n", acount);
scount++
acount++
}
int main(void){
sub();
sub();
sub();
return 0;
}
์ ์ฅ ์ ํ ์ง์ ์ register
-๋ ์ง์คํฐ(register)์ ๋ณ์๋ฅผ ์ ์ฅํ๋ค
register int i;
for(i = 0 ; i < 100 ; i++)
sum += i;
- ๋ ์ง์คํฐ๋ CPU ์์ ์๋์ ๋ฐ์ดํฐ ์ ์ฅ์์ด๋ค.
- ๋ฉ๋ชจ๋ฆฌ๊น์ง ๊ฐ์ง ์์๋ ๋ผ์ ์๋๊ฐ ๋น ๋ฅด๊ณ ์ฑ๋ฅ์ด ์ข์์ง๋ค.
- ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ฉด ์ข๋ค.
volatile ์ง์ ์
- ํ๋์จ์ด๊ฐ ์์๋ก ๋ณ์์ ๊ฐ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.
- ํ๋์จ์ด์ ์ฐ๊ฒฐ๋ ๋ณ์
- ์๋ฒ ๋๋ ์์คํ ์ ์ฐ์ธ๋ค.
volatile int io_port; //ํ๋์จ์ด์ ์ฐ๊ฒฐ๋ ๋ณ์
void wait(void){
io_port = 0;
while (io_port != 255);
}
'C Programming Language > C' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
C์ธ์ด ๋ฐฐ์ด์ ๋ํด ํ์ตํ๊ธฐ (0) | 2024.06.19 |
---|---|
C์ธ์ด ์ฌ๊ท์ ์๊ณ ๋ฆฌ์ฆ : ํ๋ ธ์ด ํ ๋ฌธ์ (0) | 2024.06.19 |
C์ธ์ด ์ ์ญ๋ณ์์ ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์(+๊ฐ๋ณ๋งค๊ฐ๋ณ์)์ ๊ฐ๋ (2) | 2024.06.19 |
C์ธ์ด ์ฌ์ฉ์ ์ ์ ํจ์ (0) | 2024.06.19 |
C์ธ์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ rand() ํจ์ (0) | 2024.06.18 |