./../
  I D :    ¾Ï È£ :     IDÀúÀå         ȸ ¿ø °¡ ÀÔ      ³×°Ô(ÁåÀå) ÂÊÁöº¸³»±â      ¸Þ¸ðÀå      °¢Á¾°è»ê±â      ºü·¿      À̸ðƼÄÜ(ÇÁ·¹ÀÓ»õâ)      º¸À¯Àåºñ
¸ñ·ÏÀ¸·Î °¡±â..
C ¿ä¾à ±èÁ¾È£ | »èÁ¦Çϱâ

C-¾ð¾î ¿ä¾à ¹× »ç¿ë¹ý

 


C ¾ð¾î ¿ä¾à

¡¡1972³â¿¡ ź»ýÇÑ C¾ð¾î´Â ½ÇÇàÄڵ尡 ÀÛ°í ºü¸£¸é¼­µµ Çϵå¿þ¾î¿Í Ä£¼÷Çϸç, ¶Ù¾î³­ À̽ļºÀÌ ºÎ°¢µÇ¾î UNIX, DOS µî ¸¹Àº ¿î¿ë½Ã½ºÅÛ¿¡¼­ C¾ð¾î¸¦ äÅÃÇÏ°Ô µÇ¾ú´Ù. C¾ð¾î¿¡¼­´Â ÇÔ¼ö³»ºÎ¿¡¼­ ¼±¾ðÇÑ Áö¿ªº¯¼ö°¡ ´Ù¸¥ ÇÔ¼ö¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê¾Æ ü°èÀûÀÌ°íµµ ÇÔ¼ö µ¶¸³ÀûÀÎ ÇÁ·Î±×·¡¹ÖÀÌ °¡´ÉÇÏ´Ù. óÀ½¿¡ ÀÛ¼ºÇÑ ÇÁ·Î±×·¥¿¡ ¹ö±×°¡ ÀÖÀ» °æ¿ì ¹ö±×°¡ µé¾î ÀÖ´Â ÇÔ¼ö¸¸ »õ·Î¿î °ÍÀ¸·Î ±³Ã¼ÇÏ¸é ±âÁ¸ÀÇ ÇÁ·Î±×·¥À» ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î À¯Áö, º¸¼öÀÇ Ãø¸é¿¡¼­µµ À¯¸®ÇÏ´Ù. ¾î¼Àºí·¯´Â ÇÁ·Î¼¼¼­°¡ ¹Ù²î¸é ´Ù½Ã ¹è¿ö¾ß ÇÏÁö¸¸ C¾ð¾î´Â Ç¥ÁØÈ­µÈ ¾ð¾îÀ̹ǷΠÇÁ·Î¼¼¼­°£ÀÇ Â÷ÀÌ°¡ °ÅÀÇ ¾ø´Ù. Áö±ÝºÎÅÍ C¾ð¾î¸¦ °£´ÜÇÏ°Ô »ìÆ캻´Ù.

¡ß ¸ÕÀú ¾Ë¾Æ µÑ »çÇ×

  • ÁÖ¼®¹®

ÇÁ·Î±×·¥À» ÀÌÇØÇϱ⠽±µµ·Ï ÁÖ¼®¹®À» ´Ù´Âµ¥ »ç¿ëÇÑ´Ù. ÁÖ¼®¹®Àº /* ·Î ½ÃÀÛÇÏ¿© */·Î ³¡³­´Ù. ÄÄÆÄÀÏ·¯´Â /* ¿Í */ »çÀÌÀÇ ¸ðµç ¹®ÀÚ¸¦ ¹«½ÃÇϹǷΠ/*,*/ »çÀÌ¿¡ ÇÑ±Û ÁÖ¼®À» ´Þ ¼ö ÀÖ´Ù. º¼·£µå C++°°Àº C++ ÄÄÆÄÀÏ·¯¿¡¼­´Â C¾ð¾îÀÇ ÁÖ¼®¹® ÀÌ¿Ü¿¡µµ ''//''·Î ½ÃÀÛÇÏ´Â ÇàÀº ¸ðµÎ ÁÖ¼®À¸·Î 󸮵ȴÙ.

    /* C, C++ÀÇ ÁÖ¼® (¿©·¯ ¶óÀο¡ Àû¿ë)*/

    // C++¿¡¸¸ Àû¿ëµÇ´Â ÁÖ¼® (ÇÑÁÙ¿¡¸¸ È¿°ú)

  • ¹®ÀåÀÇ ³¡

¹®ÀåÀÇ ³¡Àº ¹Ýµå½Ã ; (¼¼¹ÌÄÝ·Ð)À¸·Î ³¡³ª¾ß ÇÑ´Ù. ¹®À峡¿¡ ;À» ±ôºýÇÏ¿© ÄÄÆÄÀÏ ¿¡·¯°¡ ¹ß»ýÇÏ´Â °æ¿ì°¡ ¸¹À¸¹Ç·Î ÁÖÀÇÇÑ´Ù.

    int x=3; /*¹®ÀÚÀÇ ³¡¿¡´Â ;À» »ç¿ëÇØ¾ß ÇÑ´Ù*/¡¡

  • º¹ÇÕ¹® (compound statement)

º¹ÇÕ¹®Àº 2°³ ÀÌ»óÀÇ ¹®ÀåÀ» Áß°ýÈ£ {,}·Î ¹­Àº °ÍÀ» ¸»Çϸç, ºí·Ï(block)ÀÌ¶ó ¸»ÇÑ´Ù. º¹ÇÕ¹®µµ 1°³ÀÇ ¹®Àå°ú µ¿ÀÏÇÏ°Ô Ãë±ÞÇÑ´Ù.

    x=3; /* ´ÜÀϹ® */

    { /* µÎ °³ÀÇ ´ÜÀϹ®À¸·Î ÀÌ·ç¾îÁø º¹ÇÕ¹® */

    x=5; /* ´ÜÀϹ® */

    y=7; /* ´ÜÀϹ® */

    }

  • ´ë¼Ò¹®ÀÚ ±¸ºÐ

C¾ð¾î¿¡¼­´Â ´ë¹®ÀÚ¿Í ¼Ò¹®ÀÚ¸¦ ±¸º°ÇÑ´Ù. Áï abc¿Í ABC´Â ¼­·Î °ü°è¾ø´Â º¯¼öÀÌ´Ù.

int abc; // abc¿Í ABC´Â ¼­·Î ´Ù¸¥ º¯¼öÀÌ´Ù.
int ABC;
  • Âü°ú °ÅÁþ

ÁÁÀº »ç¶÷°ú ³ª»Û »ç¶÷¿¡ ´ëÇÑ ±âÁØÀÌ °³Àο¡ µû¶ó ´Ù¸£µíÀÌ ¾ð¾î¸¶´Ù Âü°ú °ÅÁþÀ» ±¸ºÐÇϴµ¥ Á¶±Ý¾¿ Â÷ÀÌ°¡ ÀÖ´Ù. C¾ð¾î¿¡¼­´Â ¼ýÀÚ 0(¿µ)À» °ÅÁþ, ¼ýÀÚ 0ÀÌ ¾Æ´Ñ °ªÀ» ÂüÀ¸·Î ÆÇ´ÜÇÑ´Ù.

    if (1)

        printf(ÀÌ°ÍÀº ÂüÀÔ´Ï´Ù. ¿Ö³ÄÇϸé 1Àº 0ÀÌ ¾Æ´Ï±â ¶§¹®ÀÔ´Ï´Ù.¡°);

¡ß C ¾ð¾î ¿ä¾à

  • Å°¿öµå

Åͺ¸-C(ȤÀº º¼·£µå-C)ÀÇ °æ¿ì 80x86 Çϵå¿þ¾îÀÇ Æ¯¼ºÀ» ¹Ý¿µÇÏ¿© far, near, interrupt µî ¸î °³ÀÇ Å°¿öµå¸¦ Ãß°¡ÇÏ¿´À¸³ª, C¾ð¾îÀÇ Ç¥ÁØ Å°¿öµå´Â ¸ðµÎ 32°³¿¡ ºÒ°úÇÏ´Ù. ÀÌ Áß¿¡¼­µµ ÁÖ·Î »ç¿ëµÇ´Â Å°¿öµå´Â 26°³ Á¤µµ¿¡ ºÒ°úÇϹǷÎ, BASIC¾ð¾îÀÇ ¾à 150°³ Å°¿öµå¿¡ ºñÇؼ­´Â ¹°·ÐÀÌ°í 80x86¾î¼Àºí·¯ÀÇ ±âº»ÀûÀÎ Å°¿öµåÀÇ ¼öÀÎ ¾à 70°³¿¡ ºñÇؼ­µµ »ó´çÈ÷ ÀûÀº ¾çÀÌ´Ù.

C¾ð¾îÀÇ Å°¿öµå´Â ´ÙÀ½°ú °°ÀÌ ¸ðµÎ ¼Ò¹®ÀÚ·Î ±¸¼ºµÇ¾î ÀÖ´Ù. °ýÈ£ ¾ÈÀÇ Å°¿öµå´Â ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â °ÍÀÌ´Ù.

    (auto) break case char (const) continue

    default do double else enum extern

    float for (goto) if int long

    register return (short) (signed) sizeof static

    struct switch typedef union unsigned void

    (volatile) while

  • Åͺ¸-C Ãß°¡ Å°¿öµå

Åͺ¸-C¿¡¼­ Ãß°¡ÇÑ Å°¿öµå´Â ÀÎÅÍ·´Æ® °ü·Ã Á¶ÀÛÀ» À§ÇÑ interrupt Å°¿öµå¿Í 80x86Çϵå¿þ¾î¸¦ ¼¼¹ÐÇÏ°Ô Á¦¾îÇϱâ À§ÇØ Æ÷ÀÎÅÍ¿¡ °ü·ÃµÈ near, far ±×¸®°í ÀζóÀÎ ¾î¼Àºí·¯(CÄÚµå Áß°£¿¡ Á÷Á¢ ¾î¼Àºí·¯¸¦ ±â·ÏÇÏ´Â ¹æ¹ý)¸¦ À§ÇÑ asm°ú ÀÇ»ç ·¹Áö½ºÅͺ¯¼ö, ±×¸®°í º¯¼öÀü´Þ ¹æ½Ä¿¡ C¾ð¾îÇü½ÄÀ» Àû¿ëÇÒ °ÍÀΰ¡ pascalÇü½ÄÀ» µû¸¦ °ÍÀΰ¡¸¦ °áÁ¤ÇÏ´Â cdecl, pascal Å°¿öµå·Î ±¸¼ºµÇ¾ú´Ù. °ýÈ£¾ÈÀÇ Å°¿öµå´Â ÀÚÁÖ »ç¿ëµÇÁö ¾Ê´Â °ÍÀÌ´Ù.

    asm (cdecl) far interrupt near (huge)

    (pascal)

    ÀÇ»ç ·¹Áö½ºÅͺ¯¼ö

    _AX _BX _CX _DX _SI _DI _BP _SP

    _AL _AH _BL _BH _CL _CH _DL _DH

  • »ó¼ö

»ó¼ö´Â ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÇ´Â µ¿¾È ±× °ªÀÌ ¹Ù²îÁö ¾ÊÀ¸¸ç ¹®ÀÚÇü, Á¤¼öÇü, ½Ç¼öÇüÀÇ ¼¼°¡Áö Á¾·ù°¡ ÀÖ´Ù. »ó¼ö´Â ´ÙÀ½ Ç¥¿Í °°ÀÌ Ç¥ÇöÇÑ´Ù.

¸íĪ

³»¿ë

¿¹

¹®ÀÚÇü

»ó¼ö

ÇÑ ¹®ÀÚ¸¦ Ç¥½ÃÇÑ´Ù. 0~255 (0x00~0xFF)±îÁöÀÇ ¼ýÀÚÇ¥½Ãµµ °¡´ÉÇÏ´Ù

''a'',''A'',0x55

Á¤¼öÇü

»ó¼ö

8Áø¼ö,10Áø¼ö,16Áø¼öÀÇ Á¤¼ö¸¦ Ç¥½ÃÇÑ´Ù.

0123 (8Áø¼ö=0À¸·Î ½ÃÀÛ)

123 (10Áø¼ö)

0x123 (16Áø¼ö= 0x·Î ½ÃÀÛ)

½Ç¼öÇü

»ó¼ö

ºÎµ¿¼Ò¼öÁ¡À» Ç¥½ÃÇÑ´Ù.

3.1415

1.5e3 (=1500)

  • ÀÚ·áÇü

C¾ð¾îÀÇ ÀÚ·áÇüÀº µ¥ÀÌŸÀÇ Å©±â¿Í Á¾·ù¿¡ µû¶ó 5°¡ÁöÀÇ ±âº»ÇüÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. Âü°í·Î ÀÚ·áÇüÀÌ Â÷ÁöÇÏ´Â ¹ÙÀÌÆ®ÀÇ Å©±â´Â ½Ã½ºÅÛ¿¡ µû¶ó ´Ù¸¦ ¼ö ÀÖ´Ù. ¾Æ·¡ Ç¥´Â IBM-PC/Åͺ¸-C ±âÁØÀÌ´Ù. Ç¥¿¡¼­ ³ªÅ¸³»´Â ÀÚ·áÇüÀº ¸ðµÎ +/- ºÎÈ£°¡ ÀÖ´Â °ÍÀÌÁö¸¸ ³»ÀåÇüÁ¦¾î±â¿¡¼­´Â ºÎÈ£ ¾ø´Â (unsigned) ÇüÀÌ ¸¹ÀÌ ¾²ÀδÙ. ¸¸¾à º¯¼ö¸¦ ºÎÈ£ ¾ø´Â Á¤¼ö·Î ¼±¾ðÇÏ·Á¸é unsigned int my_var; ó·³ Ç¥±âÇÏ¸é µÈ´Ù. º¯¼öÇü¿¡ unsigned°¡ ºÙ¾îµµ º¯¼ö°¡ Â÷ÁöÇÏ´Â ¸Þ¸ð¸® °ø°£Àº º¯ÇÏÁö ¾Ê´Â´Ù. Áï int³ª unsigned int ¸ðµÎ 2¹ÙÀÌÆ®ÀÇ Å©±âÀÌ´Ù.

ÀÚ·áÇü

³»¿ë

Å©±â

(¹ÙÀÌÆ®)

¹üÀ§

char

¹®ÀÚÇü

1

-128 ~ 127

int

Á¤¼öÇü

2

-32768 ~ 32767

long

long Á¤¼öÇü

4

-2147483648 ~

2147483647

float

½Ç¼öÇü

4

-3.4e38 ~ 3.4e38

double

¹èÁ¤µµ ½Ç¼ö

8

-3.4e4932~ 3.4e4932

C¾ð¾îÀÇ ´Ù¼¸ °¡Áö ±âº» µ¥ÀÌŸÇüÀº Çü º¯°æÀÚ(type modifier)¸¦ ÀÌ¿ëÇÏ¿© Àǹ̸¦ È®ÀåÇÒ ¼ö ÀÖ´Ù. ÀÌ Áß signed¿Í unsigned Çü º¯°æÀÚ´Â Á¤¼öÇü °è¿­ µ¥ÀÌŸ ŸÀÔ (¼Ò¼öÁ¡ÀÌ ¾ø´Â ¼ýÀڷΠǥÇöµÇ´Â µ¥ÀÌŸ ŸÀÔ-char, int, long)¿¡¸¸ Àû¿ëÇÒ ¼ö ÀÖ´Ù.

Çü º¯°æÀÚ

³»¿ë

¿¹

signed

ºÎÈ£ ÀÖ´Â Á¤¼öÇü

signed int si;

unsigned

ºÎÈ£ ¾ø´Â Á¤¼öÇü

unsigned char byte;

near

±Ù°Å¸® Æ÷ÀÎÅÍ

int near *np;

far

¿ø°Å¸® Æ÷ÀÎÅÍ

int far *fp;

  • º¯¼ö¸í(º¯¼öÀ̸§)

ÇÁ·Î±×·¥ ³»¿¡¼­ »ç¿ëµÇ´Â ¸ðµç º¯¼ö´Â ¹Ýµå½Ã ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. º¯¼öÀ̸§Àº ¹®ÀÚ³ª ¾ð´õ¹Ù(_)·Î ½ÃÀ۵Ǹç, À̸§ Áß¿¡ ¹®ÀÚ, ¼ýÀÚ, ¾ð´õ¹Ù¸¦ ÀÚÀ¯·Ó°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. º¯¼ö´Â ÀÚ·áÇüÀ» ¾²°í ±× µÚ¿¡ º¯¼ö¸íÀ» ±â·ÏÇÏ´Â ¹æ¹ýÀ¸·Î Á¤ÀÇÇÑ´Ù. ¸¶À̳ʽº±âÈ£(-)´Â º¯¼öÀ̸§ ¼Ó¿¡ Æ÷ÇԵǾ´Â ¾ÈµÈ´Ù.

int my_data; /* my_data¸¦ Á¤¼öÇü º¯¼ö·Î ¼±¾ð */

float pi; /* pi¸¦ ½Ç¼öÇü º¯¼ö·Î ¼±¾ð */

º¯¼öÀÇ ÃʱâÈ­

º¯¼ö´Â ¼±¾ðÇÒ ¶§ ÃʱâÈ­½Ãų ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é ´ÙÀ½°ú °°´Ù.

char ch=''c''; /* ch¸¦ ¹®ÀÚÇü º¯¼ö·Î ¼±¾ðÇϸ鼭 c''·Î ÃʱâÈ­ */

int i=100; /* int¸¦ Á¤¼öÇü º¯¼ö·Î ¼±¾ðÇϸ鼭, 100À¸·Î ÃʱâÈ­ */

float x=1.23456; /* x¸¦ ½Ç¼öÇü º¯¼ö·Î ¼±¾ðÇϸ鼭, 1.23456À¸·Î ÃʱâÈ­ */ 

  • ¿¬»êÀÚ

»ê¼ú¿¬»êÀÚ

º¯¼öÀÇ °¡°¨½ÂÁ¦ ¿¬»ê¿¡ ¾²ÀδÙ.

¿¬»êÀÚ

³»¿ë

¿¹

*

°öÇϱâ

y=a*x;

/

³ª´©±â

y=a/x;

%

³ª¸ÓÁö

(Á¤¼öÇü¿¬»ê¿¡¸¸ »ç¿ë)

y=5%3 (³ª¸ÓÁö´Â 2°¡ µÈ´Ù)

+

´õÇϱâ

y=a+b;

-

»©±â

y=a-b;

°ü°è¿¬»êÀÚ

º¯¼ö°£ ȤÀº º¯¼ö¿Í ¼ýÀÚ»çÀÌÀÇ Å©±âºñ±³¿¡ ¾²ÀδÙ.

¿¬»êÀÚ

³»¿ë

¿¹

==

°°´Ù

if(a==5) printf(5¿Í °°´Ù¡°);

!=

°°Áö ¾Ê´Ù.

if(a!=5) printf(5°¡ ¾Æ´Ï´Ù¡°);

<

ÀÛ´Ù

if(a<5) printf(5º¸´Ù ÀÛ´Ù¡°);

>

Å©´Ù

if(a>5) printf(5º¸´Ù Å©´Ù¡°);

<=

À۰ųª °°´Ù

if(a<=5) printf(5º¸´Ù À۰ųª °°´Ù¡°);

>=

Å©°Å³ª °°´Ù

if(a>=5) printf(5º¸´Ù Å©°Å³ª °°´Ù¡°);

³í¸®¿¬»êÀÚ

Á¶°ÇÆÇ´ÜÀ» ÇÒ ¶§ »ç¿ëÇÑ´Ù.

¿¬»êÀÚ

³»¿ë

¿¹

&&

³í¸®°ö(AND)

if(a>5 && a<7) printf(a´Â 6ÀÌ´Ù¡°);

||

³í¸®ÇÕ(OR)

if(a>5 || a==5) printf(a´Â 5º¸´Ù Å©°Å³ª

°°´Ù¡°);

!

ºÎÁ¤(NOT)

if(!a) printf(a´Â 0ÀÌ´Ù. ¿Ö³ÄÇϸé C¿¡¼­

°ÅÁþÀº 0, ÂüÀº 0ÀÌ ¾Æ´Ï±â ¶§¹®ÀÌ´Ù¡°);

±âŸ¿¬»êÀÚ

¿¬»êÀÚ

³»¿ë

¿¹

++

1Áõ°¡

a++; /* a=a+1°ú µ¿ÀÏ*/

--

1°¨¼Ò

a--; /* a=a-1°ú µ¿ÀÏ*/

?:

ÆÇ´Ü

y=(a<0) ? a : -a; /* a°¡ 0º¸´Ù Å©¸é y=a, 0º¸´Ù ÀÛÀ¸¸é y=-a */

sizeof

µ¥ÀÌŸÇüÀÇ Å©±â

y=sizeof(int); /*Á¤¼öÇü(int)´Â 2¹ÙÀÌÆ® Å©±âÀ̹ǷÎ, y´Â 2°¡µÈ´Ù*/

ºñÆ®´ÜÀ§ ³í¸®¿¬»êÀÚ

ÀϹÝÀûÀÎ º¯¼ö´Â ¸ðµÎ ¹ÙÀÌÆ®´ÜÀ§(ȤÀº ¿öµå´ÜÀ§)·Î 󸮵ÇÁö¸¸, ³»ÀåÇüÁ¦¾î±â¿¡¼­´Â ºñÆ®´ÜÀ§·Î º¯¼ö¸¦ Á¶ÀÛÇÏ´Â °æ¿ì°¡ ¸¹´Ù. ºñÆ®´ÜÀ§ ³í¸®¿¬»êÀÚ´Â Çش纯¼ö¿¡ ´ëÇØ ºñÆ®´ÜÀ§·Î ¿¬»êÀ» ¼öÇàÇÑ´Ù.

¿¬»êÀÚ

³»¿ë

¿¹

&

ºñÆ®´ÜÀ§ ³í¸®°ö(AND)

y = a&0x0F;

/*aÀÇ ÇÏÀ§ 4ºñÆ®¸¸ ¾ò´Â´Ù.*/

|

ºñÆ®´ÜÀ§ ³í¸®ÇÕ(OR)

y = a|0x0F

/*aÀÇ ÇÏÀ§ 4ºñÆ®¸¦ ¸ðµÎ 1·Î ¸¸µç´Ù*/

~

ºñÆ®´ÜÀ§ ºÎÁ¤(1ÀÇ º¸¼ö)

y = ~0x00; /*y¸¦ 0xFF·Î ¸¸µç´Ù*/

^

ºñÆ®´ÜÀ§ ¹èŸÀû OR

y = a^0xFF;

/*aÁß ÇØ´çºñÆ®°¡ 1À̸é 0À¸·Î ¸¸µç´Ù*/;

<<

¿ìÃøÀ¸·Î À̵¿

y = 0x1<<2; /*0x1À» ¿ìÃøÀ¸·Î 2ºñÆ® À̵¿, y=0x4°¡ µÈ´Ù*/

>>

ÁÂÃøÀ¸·Î À̵¿

y = 0x2>>1; /*0x2¸¦ ÁÂÃøÀ¸·Î 1ºñÆ® À̵¿,y=0x1ÀÌ µÈ´Ù*/

  • Á¦¾î¹®

if¹®

°¡Àå ±âº»ÀûÀÎ ¼±Åù®À¸·Î ÆÇ´Ü°á°ú°¡ ÂüÀΰ¡ °ÅÁþÀΰ¡¿¡ µû¶ó ½ÇÇàÇØ¾ß ÇÒ ¹®ÀåÀ» ¼±ÅÃÇÑ´Ù. if°á°ú ó¸®ÇØ¾ß ÇÒ ¹®ÀåÀÌ ´ÜÀÏ ¹®ÀåÀ̶ó¸é Áß°ýÈ£ {, } °¡ ÇÊ¿ä ¾øÁö¸¸ 2°³ÀÌ»óÀÇ ¹®ÀÚ¸¦ ¿¬¼ÓÀ¸·Î ó¸®ÇØ¾ß ÇÑ´Ù¸é Áß°ýÈ£¸¦ »ç¿ëÇÏ¿© ºí·ÏÈ­ ÇØ¾ß ÇÑ´Ù

    if(x>100) printf(x´Â 100º¸´Ù Å©´Ù);

    else printf(x´Â 100 º¸´Ù À۰ųª °°´Ù¡°);

    if(x>=10)

      {

      printf(x´Â 10°ú °°´Ù¡°);

      printf(x´Â 10º¸´Ù Å©´Ù¡°);

      }

switch/case ¹®

ºñ±³°á°ú¿¡ µû¶ó ½ÇÇàÇØ¾ß ÇÒ ÄÚµåÀÇ Á¾·ù°¡ ¿©·¯°¡ÁöÀÏ °æ¿ì »ç¿ëÇÑ´Ù. ºñ±³°á°ú¿Í ÀÏÄ¡ÇÏ´Â case¿¡ ÇØ´çµÇ´Â ¹®ÀåÀ» break Å°¿öµå¸¦ ¸¸³¯ ¶§±îÁö ½ÇÇàÇÑ´Ù. switch·Î ¼±ÅÃÇÏ°íÀÚ ÇÏ´Â º¯¼ö´Â ¹Ýµå½Ã Á¤¼öÇü(char, int, long µî)À̾î¾ß ÇÑ´Ù.

    char ch;

    switch(ch) //ch=¹®ÀÚÇü Á¤¼ö

      {

      case ''a'': printf(ch´Â aÀÔ´Ï´Ù¡°);

        break; /* ch==''a''ÀÇ °æ¿ì ó¸® Á¾·á*/

      case ''b'': /* ch°¡ ''b''ÀÏ °æ¿ì ÀÌ°÷À¸·Î ÁøÀÔÇÏÁö¸¸ break¹®ÀÌ ¾øÀ¸¹Ç·Î ¾Æ·¡ÀÇ

        ¹®ÀåÀ» °è¼ÓÇؼ­ ¼öÇàÇÑ´Ù */

      case ''c'': printf(ch´Â b ȤÀº cÀÔ´Ï´Ù¡°);

        break; /* switch¹® Á¾·á (Å»Ãâ) */

      default : printf(ch´Â ±×¹ÛÀÇ ¹®ÀÚÀÔ´Ï´Ù¡°);

      break;

      }

for ¹®

óÀ½ ÃʱⰪÀ» ¼³Á¤ÇÑ ´ÙÀ½ Á¶°ÇÀÌ ÂüÀÎ µ¿¾È º¯È­Ä¡¸¦ ¼öÇàÇϸ鼭 ¹®ÀåÀ» ½ÇÇàÇÑ´Ù

    /* i=0À¸·Î ÃʱⰪÀ» ¼³Á¤ÇÑ ÈÄ,// sum=sum+i¸¦ ½ÇÇàÇÑ´Ù. ±×ÈÄ i++ (Áï,i=i+1)¸¦ ó¸®ÇÏ°í,
         ºñ±³¹® (i<10)ÀÇ °á°ú°¡ ÂüÀÏ ¶§±îÁö sum=sum+i¿Í i++ 󸮸¦ ¹Ýº¹ÇÑ´Ù*/

    sum=0;
      for(i=0;i<10;i++) sum=sum+i;
      printf(0¿¡¼­ 9±îÁöÀÇ ÇÕÀº %d,sum);

while ¹®

Á¶°Ç½ÄÀÌ ÂüÀÏ µ¿¾È while¿¡ µû¸£´Â ¹®ÀåÀ» ½ÇÇàÇÑ´Ù

    sum=i=0; /* sum=0; I=0;°ú °°´Ù. */

    while(i<10) /* i°¡ 10º¸´Ù ÀÛÀº °æ¿ì ¼öÇàÇÑ´Ù */

      {

      sum=sum+i;

      i++; /* i=i+1°ú °°´Ù */

      }

    printf(0¿¡¼­ 9±îÁöÀÇ ÇÕÀº %d, sum);

do{ ¹®Àå }while( Á¶°Ç¹® );

¿ì¼± do³»ºÎÀÇ ¹®ÀåÀ» ½ÇÇàÇÑ ÈÄ while ´ÙÀ½ÀÇ Á¶°Ç¹®ÀÌ ÂüÀÎ µ¿¾È do ¹®ÀåÀ» ½ÇÇàÇÑ´Ù. ÃÖ¼Ò 1¹øÀº ½ÇÇàÇÏ´Â while¹®À̶ó°í º¼ ¼ö ÀÖ´Ù.

    sum=i=0; /* sum=0; i=0;À» ÀÌ·¸°Ô ¾µ ¼ö ÀÖ´Ù */

    do

      {

      sum=sum+i;

      i++; /* i=i+1°ú °°´Ù*/

      }while(i<9) /* i°¡ 10º¸´Ù ÀÛÀº °æ¿ì ¼öÇàÇÑ´Ù */

    printf(0¿¡¼­ 9±îÁöÀÇ ÇÕÀº %d, sum);¡¡

  • ÇÔ¼ö(function)

C¾ð¾î¿¡¼­ÀÇ ÇÔ¼ö´Â ¼öÇп¡¼­ À̾߱âÇÏ´Â ÇÔ¼ö¿Í´Â ´Ù¸¥ Àǹ̸¦ °¡Áö°í ÀÖ´Ù. C¾ð¾îÀÇ ÇÔ¼ö´Â ƯÁ¤ÇÑ ÀÛ¾÷À» ¼öÇàÇϵµ·Ï ¼³°èµÈ µ¶¸³ÀûÀÎ ÇÁ·Î±×·¥À» ¸»ÇÏ´Â °ÍÀÌ´Ï ´Ù¸¥ ¾ð¾îÀÇ ¼­ºê·çƾ°ú °°Àº µ¿ÀÛÀ» ÇÑ´Ù°í º¸¸é µÈ´Ù. ÇÁ·Î±×·¥¿¡¼­ ƯÁ¤ÀÛ¾÷À» ¹Ýº¹Çؼ­ ¼öÇàÇØ¾ß ÇÒ °æ¿ì, ±× ÀÛ¾÷¿¡ ÇØ´çµÇ´Â ÀûÀýÇÑ ÇÔ¼ö¸¦ ¸¸µé¾î¼­ ÇÊ¿äÇÒ ¶§¸¶´Ù È£ÃâÇϸé ÇÁ·Î±×·¥À» °£°áÇϸ鼭µµ ÀÌÇØÇϱ⠽±°Ô ±¸¼ºÇÒ ¼ö ÀÖ´Ù.

C¾ð¾î¿¡¼­´Â ¸ðµç ÇÁ·Î±×·¥ÀÌ °®´Â 3°¡Áö ±¸¼ºÀÎ ÀÔ·Â, ó¸®, Ãâ·Â ºÎºÐ Áß¿¡¼­ ÀԷ°ú Ãâ·ÂºÎºÐÀº °ú°¨È÷ »èÁ¦ÇÏ°í ¿À·ÎÁö 󸮺κи¸À¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÀԷ°ú Ãâ·ÂÀÌ ÇÊ¿äÇÏÁö ¾Ê´Â ÇÁ·Î±×·¥Àº °ÅÀÇ ¾øÀ¸¹Ç·Î, C¾ð¾î º»Ã¼¸¸À¸·Î ¿øÇÏ´Â ÀÏÀ» ÀÛ¼ºÇϱâ´Â Èûµé°Ô µÈ´Ù. µû¶ó¼­ ÀԷ°ú Ãâ·ÂºÎºÐ¿¡ ÇØ´çµÇ´Â ÇÔ¼öºÎÅÍ Á¦ÀÛÇØ¾ß ÇÑ´Ù.

»ç½Ç 󸮺κÐÀ» Á¦¿ÜÇÑ ¸ðµç ºÎºÐÀ» »ç¿ëÀÚ°¡ ÁغñÇÑ´Ù´Â °ÍÀº Áö±ØÈ÷ ¾î·Á¿î ÀÏÀÌÁö¸¸ ÄÄÆÄÀÏ·¯ Á¦Á¶È¸»ç¿¡¼­ Ç¥ÁØÀûÀÎ ·±Å¸ÀÓ ¶óÀ̺귯¸®¸¦ ÁغñÇÏ¿© ÀÔÃâ·Â ºÎºÐÀº ¹°·Ð ´Ù¾çÇÑ Ã³¸®ÇÔ¼ö±îÁö ÁغñÇÏ°í ÀÖ´Ù. »ç¿ëÀÚ´Â ÀÌ·± ¶óÀ̺귯¸®¸¦ ÀûÀýÈ÷ È°¿ëÇÏ¿© ÀÚ½ÅÀÇ ¿ëµµ¿¡ ¸Â´Â ÇÔ¼ö¸¦ Á¦ÀÛÇÏ¸é µÈ´Ù.

·±Å¸ÀÓ ¶óÀ̺귯¸®

·±Å¸ÀÓ ¶óÀ̺귯¸®´Â ±×°ÍÀÌ ¼±¾ðµÈ Çì´õÆÄÀϸ¸ ¼Ò½ºÄڵ忡 Æ÷ÇÔ½ÃÅ°¸é °£´ÜÈ÷ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÚÁÖ »ç¿ëÇÏ´Â Ãâ·ÂÇÔ¼öÀÎ printf()´Â ±×°ÍÀÌ ¼±¾ðµÈ stdio.h ÆÄÀϸ¸ Æ÷ÇÔ½ÃÅ°¸é ±× ±â´ÉÀ» ¸¾²¯ È°¿ëÇÒ ¼ö ÀÖ´Ù. ·±Å¸ÀÓ ¶óÀ̺귯¸®ÀÇ ÀÚ¼¼ÇÑ ³»¿ëÀº Åͺ¸-C °ü·Ã¼­ÀûÀ» Âü°íÇϱ⠹ٶõ´Ù.

    #include <stdio.h> /* printf(), scanf() µîÀÇ ÇÔ¼ö°¡ ¼±¾ðµÇ¾î ÀÖ´Ù.*/

    int main(void)

      {

      printf( ÀÌÇÔ¼öÀÇ ¿øÇüÀº <stdio.h>¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù.¡°);

      }

»ç¿ëÀÚ Á¤ÀÇ ÇÔ¼ö

·±Å¸ÀÓ ¶óÀ̺귯¸®¿¡ Æ÷ÇÔµÈ ÇÔ¼ö¸¸À¸·Î ¿øÇÏ´Â ÇÁ·Î±×·¥À» ÀÛ¼ºÇϱâ´Â ¾î·Á¿ì¹Ç·Î ÀÚ½ÅÀÇ ¿ëµµ¿¡ ¾Ë¸ÂÀº ÇÔ¼ö´Â ½º½º·Î ÀÛ¼ºÇϰųª ´Ù¸¥ »ç¶÷ÀÌ ÀÛ¼ºÇÑ ÇÔ¼ö¸¦ ÂüÁ¶ÇÏ¿© ÀÚ½ÅÀÇ ¿ëµµ¿¡ ¸Â°Ô ÀÀ¿ëÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº 1¿¡¼­ n±îÁöÀÇ Á¤¼ö¸¦ ´õÇØÁÖ´Â summing()ÇÔ¼ö¸¦ ÀÛ¼ºÇÑ ¿¹ÀÌ´Ù.

    /* 1¿¡¼­ n±îÁöÀÇ Á¤¼ö¸¦ ´õÇÏ¿© ±× °á°ú¸¦ µÇµ¹·Á ÁÖ´Â ÇÔ¼ö */

    int summing(int n)

      { /*ÇÔ¼ö ºí·Ï ½ÃÀÛ ¡°{¡±·Î ½ÃÀÛÇÑ´Ù*/

      int i,sum=0; /* ³»ºÎº¯¼ö ¼±¾ð, sumÀº ¼±¾ðµÇ¸é¼­ 0À¸·Î ÃʱâÈ­µÈ´Ù */

      for(i=1;i<=n;i++) sum=sum+i;

      return(sum); /* °á°ú °ª Àü´Þ */

      } /* ÇÔ¼ö ³¡ ¡°}¡±·Î ³¡³­´Ù */

     

    int main(void) /* ¸Å°³º¯¼ö°¡ ¾ø´Â ÇÔ¼ö´Â void ÀÎÀÚÇüÀ¸·Î ¼±¾ðÇÑ´Ù */

      {

      int n=10,sum;

      sum=summing(n); /* À§¿¡¼­ ¼±¾ðÇÑ summing()ÇÔ¼ö¸¦ ºÎ¸¥´Ù */

      }¡¡

  • ¼±Çà󸮱â

¼±Çà󸮱â¶õ ÇÁ·Î±×·¥ÀÌ ÄÄÆÄÀÏ µÇ±â Àü¿¡ 󸮵Ǵ ¸í·É¾î¸¦ ¸»ÇÑ´Ù. ¿©·¯°¡Áö°¡ ÀÖÁö¸¸ ÁÖ·Î »ç¿ëµÇ´Â °ÍÀº #include¿Í #define µÎ °¡ÁöÀÌ´Ù

#define

º¸Åë ¸ÅÅ©·Î(macro)¶ó ¸»ÇÑ´Ù. ¸ÅÅ©·Î¶õ ÀÏ·ÃÀÇ ¹®ÀÚ, »ó¼ö, ¼ö½ÄÀ» ÇϳªÀÇ ½Äº°ÀÚ(¹®ÀÚ¿­)·Î Ç¥½ÃÇÏ´Â °ÍÀ¸·Î, Á¤ÀÇµÈ ÈÄ ½Äº°ÀÚ¸¸ ±â¼úÇϸé ÄÄÆÄÀÏ °úÁ¤¿¡¼­ ÁöÁ¤ÇÑ ¼ö³ª ¼ö½ÄÀ¸·Î Àü°³µÈ´Ù. ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇϸé ÀǹÌÀü´ÞÀÌ ¾î·Á¿î ¼ýÀÚ³ª ¼ö½ÄÀ» ÀÌÇØÇϱ⠽¬¿î ¹®ÀڷΠǥ±âÇÒ ¼ö ÀÖÀ¸¹Ç·Î Æí¸®ÇÏ´Ù. #define ´ÙÀ½¿¡ º¯¼öÀÇ ±ÔÁ¤¿¡ ¸Â´Â ¹®ÀÚ¿­À» »ç¿ëÇÏ°í ´ëüÇÒ ¹®ÀÚ³ª ¼ýÀÚ¸¦ ±â¼úÇÑ´Ù. ¸ÅÅ©·Î Á¤ÀÇ ´ÙÀ½¿¡´Â ; À» »ç¿ëÇÏÁö ¾Ê´Â´Ù.

    #define PI 3.14 /* 3.14´ë½Å PI¸¦ »ç¿ëÇÑ´Ù */

    #define LCD_ON 0xF7

    #define LCD_addr 0x100 /* 0x100¸¦ LCD_addr·Î Ç¥±âÇÑ´Ù */

    #define outLCD(data) outportb(LCD_addr,data)

    unsigned char Pdata;

    float angle;

    Pdata = LCD_ON;

    outLCD(Pdata); /* outportb(0x100,0xF7); */

    angle = 2.*PI;

#include

ÇöÀçÀÇ ÀÚ¸®¿¡ ´Ù¸¥ ÆÄÀÏÀ» Æ÷ÇÔÇϱâ À§ÇØ »ç¿ëÇÑ´Ù. #include ´ÙÀ½¿¡ Æ÷ÇÔÇÏ°íÀÚ ÇÏ´Â ÆÄÀÏÀ̸§À» Àû´Â´Ù. ÆÄÀÏÀ̸§À» °¨½Î´Â µ¥´Â < >¿Í ¡° ¡±¸¦ »ç¿ëÇϴµ¥, ÀÌ µÑÀº ¾à°£ ´Ù¸¥ Àǹ̸¦ °¡Áø´Ù. < >ºÎÈ£´Â Ç¥ÁØ ½Ã½ºÅÛ µð·ºÅ丮¿¡¼­ ÆÄÀÏÀ» ã°í, ºÎÈ£´Â ±× ÆÄÀÏÀÌ ÀÖ´Â µð·ºÅ丮¿¡¼­ ÆÄÀÏÀ» Ž»öÇÑ´Ù. º¸Åë ³»Àå ÇÔ¼öµéÀÌ ¼±¾ðµÈ ½Ã½ºÅÛ¿¡¼­ Á¦°øÇÏ´Â Çì´õ ÆÄÀϵéÀº < >·Î Æ÷ÇÔ½ÃÅ°°í, »ç¿ëÀÚ°¡ ÀÚüÀûÀ¸·Î Á¦ÀÛÇÑ Çì´õÆÄÀÏÀº ·Î Æ÷ÇÔÀ» ½ÃŲ´Ù.

    #include <stdio.h> /* ½Ã½ºÅÛ µð·ºÅ丮¿¡¼­ stdio.h ÆÄÀÏÀ» Àоî Æ÷ÇÔ½ÃŲ´Ù */

    #include head.h /* ÇöÀçÀÇ µð·ºÅ丮¿¡¼­ head.h ÆÄÀÏÀ» Àоî Æ÷ÇÔ½ÃŲ´Ù */

    #include c:\mydir\head.h /* c:\mydir µð·ºÅ丮¿¡¼­ head.h ÆÄÀÏÀ» Àоî Æ÷ÇÔ½ÃŲ´Ù*/

typedef

typedef¹®Àº ÇÁ·Î±×·¡¸Ó ÀڽŸ¸ÀÇ ÀÚ·áÇüÀ» ¸¸µé¾î ÁØ´Ù. #define°ú ±â´ÉÀÌ ºñ½ÁÇÏÁö¸¸, ¿ÜÇüÀûÀ¸·Î typedef´Â ÀÚ·áÇüÀÇ º¯È¯¿¡¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Ù. typedef´Â ÀÚÁÖ »ç¿ëµÇ´Â ÀÚ·áÇüÀ» ¾Ë±â ½±°Ô Ç¥ÇöÇÏ°Ô ÇÏ°í, ´Ù¸¥ ±â°è¿¡ ÇÁ·Î±×·¥ÀÇ À̽ÄÀ» ½±°Ô Çϵµ·Ï µµ¿ÍÁØ´Ù. typedef ´ÙÀ½ ¿ø·¡ÀÇ ÀÚ·áÇü°ú ¹Ù²Ù°íÀÚÇÏ´Â ÀÚ·áÇüÀ» ±â¼úÇÏ¿© »ç¿ëÇÑ´Ù. #define°ú ´Þ¸® #À¸·Î ½ÃÀÛÇÏÁö ¾Ê°í, ³¡ºÎºÐ¿¡ ;¸¦ »ç¿ëÇÑ´Ù´Â °Í¿¡ ÁÖÀÇÇÑ´Ù.

    typedef unsigned char BYTE; /* unsigned charÇüÀ» BYTE·Î ¹Ù²Û´Ù */

    BYTE MSB; /* unsigned char MSB; ¿Í µ¿ÀÏÇÑ Àǹ̸¦ °®´Â´Ù */

  • struct¿Í union

C¾ð¾î¿¡¼­ struct(±¸Á¶Ã¼)¿Í union(°ø¿ëü) Å°¿öµå¸¦ ÀÌ¿ëÇÏ¿© ´Ù¼¸°¡Áö ±âº» µ¥ÀÌŸ ŸÀÔ(char, int, float, double, void)ÀÌ Á¶ÇÕµÈ »õ·Î¿î µ¥ÀÌŸ ŸÀÔÀ» ¸¸µé ¼ö ÀÖ´Ù. struct´Â ÇϳªÀÇ º¯¼ö¸íÀÌ ±â¾ïÀå¼Ò°¡ ´Ù¸¥ ¿©·¯ °³ÀÇ º¯¼öÁýÇÕÀ» ´ë½ÅÇØÁÖ¸ç, unionÀº 2°³ ÀÌ»óÀÇ º¯¼ö°¡ µ¿ÀÏÇÑ ±â¾ïÀå¼Ò(¸Þ¸ð¸®)¸¦ °øÀ¯ÇÏ°Ô ÇÑ´Ù.

struct

struct´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù

    struct ±¸Á¶Ã¼¸í{

    Ç׸ñ1;

    Ç׸ñ2;

    :

    }±¸Á¶Ã¼º¯¼ö¸í;

¾Õ¼­ Á¤ÀÇµÈ ±¸Á¶Ã¼ÇüÀÇ »õ·Î¿î ±¸Á¶Ã¼º¯¼ö´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.

struct ±¸Á¶Ã¼¸í ±¸Á¶Ã¼º¯¼ö¸í;

±¸Á¶Ã¼º¯¼ö¸í ¹Ù·ÎµÚ¿¡ ''.''À» ÷°¡ÇÑ ÈÄ Ç׸ñ¸íÀ» ¿¬ÀÌ¾î ±â·ÏÇÏ¸é ¿ÜºÎ¿¡¼­ Á¢±ÙÇÒ ¼ö ÀÖ´Â º¯¼ö¸íÀÌ µÈ´Ù. À̶§ »ç¿ëÇÏ´Â ''.''À» Ç׸ñ¿¬»êÀÚ(membership operator)¶ó°í ÇÑ´Ù. ±¸Á¶Ã¼Çü Æ÷ÀÎÅͺ¯¼ö´Â ''->''¶ó´Â ±âÈ£·Î Ç׸ñÀ» Ç¥½ÃÇÑ´Ù.

    struct SPOINT{

      int x; /* 2¹ÙÀÌÆ® Å©±âÀÇ Ç׸ñ */

      char y; /* 1¹ÙÀÌÆ® Å©±âÀÇ Ç׸ñ */

    }sp1; /* x,y¶ó´Â 2°³ÀÇ µ¥ÀÌŸŸÀÔÀ¸·Î ±¸¼ºµÈ SPOINT¶ó´Â struct (±¸Á¶Ã¼) ¿Í ±× ±¸Á¶Ã¼¸¦ »ç¿ëÇÑ º¯¼ö sp1À» ¼±¾ðÇÑ´Ù. ¿©±â¼­ x,y´Â ¸ðµÎ ´Ù¸¥ ¸Þ¸ð¸®¹øÁö¸¦ °¡Áö°Ô µÈ´Ù. SPOINT ±¸Á¶Ã¼ÀÇ Å©±â´Â 2¹ÙÀÌÆ® (x)+1¹ÙÀÌÆ®(y)=3¹ÙÀÌÆ®°¡ µÈ´Ù. */

    struct SPOINT sp2; /* ¾Õ¼­ Á¤ÀÇÇÑ SPOINT¶ó´Â ±¸Á¶Ã¼Çü º¯¼ö sp2¸¦ ¼±¾ðÇÑ´Ù*/

    sp1.x = 10; /* sp1 ±¸Á¶Ã¼º¯¼öÀÇ xÇ׸ñ¿¡ 10À» ´ëÀÔÇÑ´Ù. sp1.y¿¡´Â ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. */

    sp2.y = 20; /* sp2 ±¸Á¶Ã¼º¯¼öÀÇ yÇ׸ñ¿¡ 20À» ´ëÀÔÇÑ´Ù. sp2.x¿¡´Â ¿µÇâÀ» ¹ÌÄ¡Áö ¾Ê´Â´Ù.*/

     

union

union(°ø¿ëü)´Â struct(±¸Á¶Ã¼)¿Í ºñ½ÁÇÏ°Ô Á¤ÀÇÇÑ´Ù.

    union °ø¿ëü¸í{

      Ç׸ñ1;

      Ç׸ñ2;

      :

    }°ø¿ëü¸í;

     

¾Õ¼­ Á¤ÀÇµÈ °ø¿ëüÇüÀÇ »õ·Î¿î °ø¿ëüº¯¼ö´Â ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.

    struct °ø¿ëü¸í °ø¿ëüº¯¼ö¸í;¡¡

°ø¿ëü Ç׸ñÀ» Áö½ÃÇϱâ À§Çؼ­´Â °ø¿ëüº¯¼ö¸í ¹Ù·ÎµÚ¿¡ ¡®.¡¯À» ÷°¡ÇÑ ÈÄ Ç׸ñ¸íÀ» ¿¬ÀÌ¾î ±â·ÏÇÏ¸é µÈ´Ù.

    union UPOINT{

      int x; /* 2¹ÙÀÌÆ® Å©±âÀÇ Ç׸ñ */

      char y; /* 1¹ÙÀÌÆ® Å©±âÀÇ Ç׸ñ */

      }up1; /* x,y¶ó´Â 2°³ÀÇ µ¥ÀÌŸŸÀÔÀ¸·Î ±¸¼ºµÈ UPOINT¶ó´Â union (°ø¿ëü)¿Í ±× °ø¿ëü¸¦ »ç¿ëÇÑ º¯¼ö up1À» ¼±¾ðÇÑ´Ù. ¿©±â¼­ x,y´Â °°Àº ¸Þ¸ð¸® ¹øÁö¸¦ °¡Áö°Ô µÈ´Ù. µû¶ó¼­ up1.x¸¦ º¯È­½ÃÅ°¸é up1.y ºÎ

      ºÐµµ up1.x°¡ Â÷ÁöÇÏ´Â ¸Þ¸ð¸® °ø°£¸¸Å­ º¯ÇÏ´Â È¿°ú¸¦ °¡Áø´Ù. UPOINT °ø¿ëüÀÇ Å©±â´Â °¡Àå Å©±â°¡ Å« Ç׸ñÀÇ Å©±â°¡ µÇ¹Ç·Î ÀÌ °æ¿ì 2¹ÙÀÌÆ®(xÀÇ Å©±â)°¡ µÈ´Ù.*/

    union UPOINT up2; /* ¾Õ¼­ Á¤ÀÇÇÑ UPOINT¶ó´Â °ø¿ëüÇü º¯¼ö up2¸¦ ¼±¾ðÇÑ´Ù*/

    up1.x = 0x1234; /* up1 °ø¿ëüº¯¼öÀÇ xÇ׸ñ¿¡ 0x1234¸¦ ´ëÀÔÇÑ´Ù. up1.y´Â

    up1.x¿Í °°Àº ¸Þ¸ð¸® ¹øÁö¸¦ °øÀ¯ÇÏ°í, 1¹ÙÀÌÆ®ÀÇ Å©±â

    À̹ǷΠup1.xÀÇ ÇÏÀ§ 1¹ÙÀÌÆ®ÀÎ 0x34°¡ µÈ´Ù.*/

    up2.y = 0x56; /* up2 °ø¿ëüº¯¼öÀÇ yÇ׸ñ¿¡ 0x34¸¦ ´ëÀÔÇÑ´Ù. up2.x´Â up2.y¿Í µ¿ÀÏÇÑ ¸Þ¸ð¸® ¹øÁö¸¦ °øÀ¯ÇÏ°í, 2¹ÙÀÌÆ®ÀÇ Å©±âÀ̹ǷΠup2.xÀÇ ÇÏÀ§ 1¹ÙÀÌÆ®´Â 0x56ÀÌ µÈ´Ù. up2.xÀÇ »óÀ§ ¹ÙÀÌÆ®´Â ¿ø·¡ÀÇ °ª°ú µ¿ÀÏÇÏ´Ù.*/

  • ¹è¿­°ú Æ÷ÀÎÅÍ

¹è¿­

¹è¿­Àº ¶È°°Àº ÀÚ·áÇüÀ» °®´Â ¿ø¼Ò(º¯¼ö)ÀÇ ÁýÇÕÀ» ¸»ÇÑ´Ù. ¿ø¼ÒÀÇ ¹øÈ£´Â 1¿¡¼­ ½ÃÀÛÇÏÁö ¾Ê°í, 0ºÎÅÍ ½ÃÀÛÇÑ´Ù. C ÄÄÆÄÀÏ·¯´Â ¹è¿­ÀÇ Å©±â¸¦ °Ë»çÇÏÁö ¾ÊÀ¸¹Ç·Î, ¹è¿­ÀÇ Å©±â ÀÌ»óÀÇ µ¥ÀÌŸ¿¡ Á¢±ÙÇÏ¸é ¿¹±âÄ¡ ¾ÊÀº ¿¡·¯°¡ ¹ß»ýÇϹǷΠÁÖÀÇÇØ¾ß ÇÑ´Ù.

    int aa[10]; /* aa[0],aa[1],aa[2]... aa[9] */

    float ff[5]; /* ff[0], ff[1],ff[2],ff[3],ff[4] */

    aa[9]= 111; /*Á¤»óÀûÀÎ µ¿ÀÛ*/

    aa[20]= 123; /* aa[10]ÀÌ»óÀº ¾²±â ±ÝÁö, ¹è¿­ aaÀÇ Å©±â´Â 10À̹ǷΠÇã°¡µÈ ¿ø¼Ò¹øÈ£´Â aa[0]ºÎÅÍ aa[9]±îÁö´Ù. ¹è¿­ÀÇ Å©±â¸¦ ³Ñ¾î¼± aa[20]¿¡´Â ´Ù¸¥ µ¥ÀÌŸ ȤÀº ½ÇÇàÄڵ尡 ¾²¿©ÀÖÀ» ¼öµµ ÀÖÀ¸¹Ç·Î µ¿À۽à ¿¹±âÄ¡ ¾Ê´Â ¿¡·¯°¡ ¹ß»ýÇÑ´Ù*/

Æ÷ÀÎÅÍ

ÀϹÝÀûÀÎ º¯¼ö¸¦ ´Ù·ê ¶§, »ç¿ëÀÚ´Â º¯¼öÀÇ ³»¿ë¿¡¸¸ °ü½ÉÀ» °¡Áö¸é µÇ°í, ±× º¯¼ö°¡ Â÷ÁöÇÏ´Â ¸Þ¸ð¸®ÀÇ ¹øÁö¸¦ ÀǽÄÇÒ ÇÊ¿ä´Â ¾ø´Ù. C¾ð¾î¿¡¼­ º¯¼ö°¡ Á¤ÀÇµÇ¸é ±× º¯¼ö¿¡ ÀÐ°í ¾²¿©Áö´Â µ¥ÀÌŸ¸¦ º¸Á¸Çϱâ À§ÇØ ¸Þ¸ð¸®ÀÇ Æ¯Á¤¹øÁö¿¡ º¯¼ö°¡ À§Ä¡ÇÏ°Ô µÈ´Ù. ¿¡·¯ ¾øÀÌ ÀÛ¼ºµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ ÄÄÆÄÀÏ·¯´Â º¯¼ö³ª ½ÇÇàÄÚµå¿Í Ãæµ¹ÇÏÁö ¾Êµµ·Ï ÀûÀýÇÑ ¸Þ¸ð¸® ¹øÁö¿¡ º¯¼ö¸¦ ÇÒ´çÇϹǷΠ»ç¿ëÀÚ´Â º¯¼ö°¡ À§Ä¡ÇÑ ¸Þ¸ð¸®ÀÇ À§Ä¡¿¡ °ü½ÉÀ» °¡ÁöÁö ¾Ê¾Æµµ µÈ´Ù.

¸¶ÀÌÅ©·ÎÇÁ·Î¼¼¼­¸¦ ÀÌ¿ëÇÑ ³»ÀåÇüÁ¦¾î±â(Embedded Controller)´Â ºñ±³Àû ÀûÀº ¾çÀÇ ¸Þ¸ð¸® À§¿¡ ½ÇÇà ÄÚµå¿Í µ¥ÀÌŸ¸¦ ´ã°Ô µÇ¹Ç·Î dzºÎÇÑ ¸Þ¸ð¸®¸¦ °®´Â IBM-PC ȯ°æ¿¡ ºñÇØ º¯¼ö¿Í ¸Þ¸ð¸®ÀÇ °ü°è¿¡ ´ëÇØ ¼¶¼¼ÇÑ Á¢±ÙÀÌ ÇÊ¿äÇÏ´Ù.

ÀϹݺ¯¼ö´Â Á¶ÀÛÇÒ ´ë»óÀÌ º¯¼öÀÇ °ªÀÎ ¹Ý¸é, Æ÷ÀÎÅÍ´Â ´Ù·ç´Â ´ë»óÀÌ ¸Þ¸ð¸® ¹øÁö¶ó´Â Á¡ÀÌ Æ¯ÀÌÇÏ´Ù. Æ÷ÀÎÅÍ °ü·Ã ¿¬»êÀÚ´Â *°ú &°¡ ÀÖ´Ù. *´Â Æ÷ÀÎÅͺ¯¼ö¸¦ ¼±¾ðÇϰųª Æ÷ÀÎÅͺ¯¼öÀÇ ³»¿ë¿¡ Á¢±ÙÇÒ ¶§ »ç¿ëÇÏ°í &´Â ÀϹݺ¯¼öÀÇ ¸Þ¸ð¸®¹øÁö¸¦ ¾Ë¾Æ³¾ ¶§ »ç¿ëÇÑ´Ù.

    char ch; /* ch´Â ¹®ÀÚÇü º¯¼ö (Å©±â´Â 1¹ÙÀÌÆ®=8ºñÆ®) */

    int i; /* i´Â Á¤¼öÇü º¯¼ö (Å©±â´Â 2¹ÙÀÌÆ®=16ºñÆ®) */

    int *pch; /* *pch´Â ¹®ÀÚÇü º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ */

    int *pi; /* *pi´Â Á¤¼öÇü º¯¼ö¿¡ ´ëÇÑ Æ÷ÀÎÅÍ */

    .

    ch= 0x12; /* ¹®ÀÚÇü º¯¼ö ch¿¡ 1¹ÙÀÌÆ®ÀÇ µ¥ÀÌŸ 0x12¸¦ ±â·ÏÇÑ´Ù */

    pch = &ch; /* ¹®ÀÚÇü º¯¼ö chÀÇ ¸Þ¸ð¸® ¹øÁö¸¦ pch¿¡ ´ëÀÔÇÑ´Ù.*/

    pch=0x1000; /* pch°¡ ¸Þ¸ð¸® ¹øÁö 0x1000 (16Áø¼ö)¸¦ Áö½ÃÇÏ°Ô ÇÑ´Ù */

    ch = *pch; /* pch°¡ Áö½ÃÇÏ´Â ¸Þ¸ð¸®(0x1000¹øÁö)¿¡¼­ 1¹ÙÀÌÆ®(8ºñÆ®)µ¥ÀÌŸ¸¦ ²¨³»¾î ch¿¡ ´ëÀÔÇÑ´Ù. *pch¿¬»ê °á°ú°¡ ¸î ¹ÙÀÌÆ®ÀÇ µ¥ÀÌŸ¸¦ ²¨³¾ °ÍÀΰ¡ ÇÏ´Â °áÁ¤Àº pch¸¦ Á¤ÀÇÇÒ ¶§ »ç¿ëÇÑ µ¥ÀÌŸ ŸÀÔ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¾ÕÀÇ pchÁ¤ÀÇ¿¡¼­ char *pch; ¿Í °°ÀÌ *pchÀÇ µ¥ÀÌŸ ŸÀÔÀ» char(1¹ÙÀÌÆ®)·Î Á¤ÀÇÇßÀ¸¹Ç·Î *pch¿¡¼­ ¾ò¾îÁö´Â µ¥ÀÌŸ´Â 1¹ÙÀÌÆ®°¡ µÈ´Ù. */

    i= 0x1234; /* Á¤¼öÇü º¯¼ö¿¡ 2¹ÙÀÌÆ®ÀÇ µ¥ÀÌŸ(0x1234)¸¦ ±â·ÏÇÑ´Ù */

    pi= &i; /* pi¿¡ Á¤¼öÇü º¯¼ö iÀÇ ¸Þ¸ð¸® ¹øÁö¸¦ ³Ö´Â´Ù */

    pi=0x2000; /* pi°¡ ¸Þ¸ð¸® ¹øÁö 0x1000 (16Áø¼ö)¸¦ Áö½ÃÇÏ°Ô ÇÑ´Ù */

    i = *pi; /* pi°¡ Áö½ÃÇÏ´Â ¸Þ¸ð¸®(0x1000¹øÁö)¿¡¼­ 2¹ÙÀÌÆ®(16ºñÆ®)µ¥ÀÌŸ¸¦ ²¨³»¾î i¿¡ ´ëÀÔÇÑ´Ù. *pi ¿¬»ê °á°ú°¡ ¸î ¹ÙÀÌÆ®ÀÇ µ¥ÀÌŸ¸¦ ²¨³¾ °ÍÀΰ¡ ÇÏ´Â °áÁ¤Àº pi¸¦ Á¤ÀÇÇÒ ¶§ »ç¿ëÇÑ µ¥ÀÌŸ ŸÀÔ¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¾ÕÀÇ piÁ¤ÀÇ¿¡¼­ int *pi; ¿Í °°ÀÌ *pi µ¥ÀÌŸ ŸÀÔÀ» int(2¹ÙÀÌÆ®)·Î Á¤ÀÇÇßÀ¸¹Ç·Î *pi ¿¬»êÀ¸·Î ¾ò¾îÁö´Â µ¥ÀÌŸ´Â 2¹ÙÀÌÆ®°¡ µÈ´Ù. */

Æ÷ÀÎÅÍ´Â ¸Þ¸ð¸®ÀÇ ¾îµå·¹½º ¹ö½º¶ó »ý°¢ÇÒ ¼ö ÀÖ´Ù. Æ÷ÀÎÅÍ ¿¬»êÀÚ (*)´Â Æ÷ÀÎÅÍ°¡ Áö½ÃÇÏ´Â ¾îµå·¹½º ¹øÁö¿¡ ÇØ´çµÇ´Â µ¥ÀÌŸ °ªÀ» ¾ò´Â ±â´ÉÀ̶ó »ý°¢ÇÒ ¼ö ÀÖ´Ù. µ¿ÀÏÇÑ ¾îµå·¹½º¸¦ ÁöÁ¤Çصµ 8ºñÆ® ÆøÀÇ ¸Þ¸ð¸®¿¡¼­´Â 8ºñÆ® µ¥ÀÌŸ°¡, 16ºñÆ® ÆøÀÇ ¾îµå·¹½º¿¡¼­´Â 16ºñÆ® µ¥ÀÌŸ¸¦ ¾òÀ» ¼ö ÀÖµíÀÌ, ¹®ÀÚÇü Æ÷ÀÎÅÍ (char *pch)¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ¿¬»ê (*pch)ÀÇ °á°ú´Â 8ºñÆ®(1¹ÙÀÌÆ®)°ªÀÌ Ãâ·ÂµÇ°í, Á¤¼öÇü Æ÷ÀÎÅÍ( int *pi)¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ¿¬»ê (*pi)ÀÇ °á°ú´Â 16ºñÆ®(2¹ÙÀÌÆ®) °ªÀÌ Ãâ·ÂµÈ´Ù.

Åͺ¸-CÀÇ near ¿Í far Æ÷ÀÎÅÍ

V25, 386EX´Â 8086°ú ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î ȣȯµÇ´Â ĨÀ̹ǷΠ¸Þ¸ð¸®¸¦ 80x86°ú ¸¶Âù°¡Áö·Î ¼¼±×¸ÕÆ®(16ºñÆ®):¿É¼Â(16ºñÆ®)ÀÇ ÇüÅ·Π´Ù·ç°Ô µÈ´Ù. ¼¼±×¸ÕÆ®¿Í ¿É¼ÂÀÇ °ªÀ» ÀÚÀ¯·Ó°Ô ¹Ù²ã °¡¸é¼­ Á¢±ÙÇÒ ¼ö ÀÖ´Â ¸Þ¸ð¸® °ø°£Àº ÃÑ 1¸Þ°¡ ¹ÙÀÌÆ®ÀÌ°í, ¼¼±×¸ÕÆ®°¡ Á¤ÇØÁ® ÀÖÀ» ¶§ ¿É¼ÂÀÇ °ª¸¸ º¯È­½ÃÄÑ°¡¸é¼­ ´Ù·ê ¼ö ÀÖ´Â ¸Þ¸ð¸® °ø°£Àº 64K ¹ÙÀÌÆ®°¡ µÈ´Ù.

Åͺ¸-C¸¦ ½º¸ô¸ðµ¨(small model)·Î ÄÄÆÄÀÏ ÇßÀ» ¶§, µ¥ÀÌŸÀÇ ¹øÁö´Â DS(µ¥ÀÌŸ ¼¼±×¸ÕÆ®)¸¦ ±âÁØÀ¸·Î ¿É¼Â¸¸ º¯È­ÇÏ°Ô µÇ¾î 64K ¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸® °ø°£¿¡ ÇÒ´çµÈ´Ù. DSÀÇ °ªÀº ÇÁ·Î±×·¥À» ¸Þ¸ð¸®¿¡ À̽ÄÇÒ ¶§ °áÁ¤ÇÑ´Ù. ½º¸ô¸ðµ¨¿¡¼­µµ DSÀÇ °ª¿¡ ÀÇÁ¸ÇÏÁö ¾Ê°í 1¸Þ°¡ ¹ÙÀÌÆ® ¸Þ¸ð¸® Àüü ¿µ¿ªÀ» ´Ù·ï¾ß ÇÒ ¶§°¡ ÀÖ´Ù. ÀÌ¿Í °°ÀÌ 64K ȤÀº 1¸Þ°¡ ¹ÙÀÌÆ®ÀÇ ¸Þ¸ð¸®¸¦ ´Ù·ê ¼ö ÀÖµµ·Ï Çϱâ À§ÇØ Åͺ¸-C¿¡¼­´Â Æ÷ÀÎÅÍ ÇüÀ» Á¤ÀÇÇÏ´Â Å°¿öµå·Î near¿Í far¸¦ ÁغñÇÏ°í ÀÖ´Ù.

near Æ÷ÀÎÅÍ´Â 64KB¿ë, far Æ÷ÀÎÅÍ´Â 1¸Þ°¡ ¹ÙÀÌÆ® ¿ëÀ¸·Î ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÑ´Ù.

    int far *fip; /* fip´Â 1¸Þ°¡ ¹ÙÀÌÆ® ¸Þ¸ð¸® ¿µ¿ª¿ë(far) Æ÷ÀÎÅÍ */

    int near *nip; /* nip´Â 64KB ¸Þ¸ð¸® ¿µ¿ª¿ë(near) Æ÷ÀÎÅÍ */¡¡

Åͺ¸-C ½º¸ô¸ðµ¨¿¡¼­´Â ÄÚµå¿Í µ¥ÀÌŸÀÇ ±âº»ÇüÀ» ¸ðµÎ nearÇüÀ¸·Î °¡Á¤Çϱ⠶§¹®¿¡, ½º¸ô¸ðµ¨¿¡¼­ 64KBÀÇ ¸Þ¸ð¸® ¿µ¿ªÀ» ´Ù·ê ¶§ near¶ó´Â Å°¿öµå´Â »ç¿ëÇÏÁö ¾Ê¾Æµµ ¹«¹æÇÏ´Ù. farÇü Æ÷ÀÎÅÍ¿¡ ¸Þ¸ð¸®¹øÁö¸¦ ´ëÀÔÇÒ ¶§´Â longÇü Á¤¼ö¸¦ »ç¿ëÇÑ´Ù. longÇü Á¤¼ö(4¹ÙÀÌÆ®)Áß ¾ÕÀÇ 2¹ÙÀÌÆ®´Â ¼¼±×¸ÕÆ®, µÚÂÊÀÇ 2¹ÙÀÌÆ®´Â ¿É¼ÂÀ» ³ªÅ¸³½´Ù.

    int i; /* Á¤¼öÇü (2¹ÙÀÌÆ®) º¯¼ö i*/

    int far *fip; /* fip´Â 1¸Þ°¡ ¹ÙÀÌÆ® ¸Þ¸ð¸® ¿µ¿ª¿ë(far) Æ÷ÀÎÅÍ */

    int near *nip; /* nip´Â 64KB ¸Þ¸ð¸® ¿µ¿ª¿ë(near) Æ÷ÀÎÅÍ, ½º¸ô¸ðµ¨¿¡¼­ int *nip¿Í µ¿ÀÏÇÑ ¿ªÇÒÀ» ÇÑ´Ù*/

    nip=0x1000; /* nip´Â DS(µ¥ÀÌŸ ¼¼±×¸ÕÆ®)¸¦ ±âÁØÀ¸·Î ÇÑ 0x1000ÀÇ ¿É¼Â¹øÁö(DS:0x1000)¸¦ ³ªÅ¸³½´Ù. => 64KB ¸Þ¸ð¸® ¿µ¿ª*/

    fip=0x20001234L; /*fip´Â 2¹ÙÀÌÆ® ¼¼±×¸ÕÆ®(0x2000)¿Í 2¹ÙÀÌÆ® ¿É¼Â(0x1234)ÀÇ ¸Þ¸ð¸® ¹øÁö(0x2000:0x1234)¸¦ ³ªÅ¸³½´Ù=>1¸Þ°¡ ¹ÙÀÌÆ® ¸Þ¸ð¸® ¿µ¿ª*/

    *nip=0x5555; /* nipÀÇ ¸Þ¸ð¸® ¹øÁö( DS:0x1000 ¹øÁö)¿¡ 0x5555ÀÇ µ¥ÀÌŸ¸¦ ±â·ÏÇÑ´Ù*/

    i = *nip; /* nipÀÇ ¸Þ¸ð¸® ¹øÁö(DS:0x1000 ¹øÁö)ÀÇ ³»¿ë(=0x5555)¸¦ i¿¡ ´ëÀÔÇÑ´Ù*/

    *fip=i; /* iÀÇ ³»¿ë(=0x5555)¸¦ fipÀÇ ¸Þ¸ð¸® ¹øÁö(0x2000:0x1234)¿¡ ±â·ÏÇÑ´Ù*/

¹è¿­°ú Æ÷ÀÎÅÍÀÇ °ü°è

¹è¿­(array)ÀÇ À̸§Àº ù¹ø° ¿ø¼ÒÀÇ ÁÖ¼Ò¸¦ ³ªÅ¸³½´Ù.

    int aa[10];

·Î Á¤ÀÇÇßÀ» ¶§, &aa[0] (Áï aa[0]ÀÇ ¸Þ¸ð¸® ¹øÁö)¿Í aa´Â °°Àº °ªÀÌ µÈ´Ù.

    int i;

    int *pi;

    int aa[10];

    pi=aa; /* pi¿¡ aa¹è¿­ ù¹ø° ¿ø¼ÒÀÇ ¸Þ¸ð¸® ¹øÁö¸¦ ´ëÀÔ

    ÀÌ°ÍÀº pi=&aa[0]°ú µ¿ÀÏÇÏ´Ù */

    *pi=0x1234; /* ÀÌ°ÍÀº aa[0]=0x1234¿Í µ¿ÀÏÇÏ´Ù */

    *(pi+1)=0x3456; /* ÀÌ°ÍÀº aa[1]=0x3456°ú µ¿ÀÏÇÏ´Ù */¡¡

  • Àü¿ªº¯¼ö¿Í Áö¿ªº¯¼ö

Áö¿ªº¯¼ö´Â ±×°ÍÀ» ¼±¾ðÇÑ ÇÔ¼ö ³»ºÎ¿¡¼­¸¸ ÀνĵǴ º¯¼öÀÌ´Ù. ÀÌ¿Í ´ëÁ¶ÀûÀ¸·Î Àü¿ªº¯¼ö´Â ÇÔ¼ö¿ÜºÎ¿¡¼­ ¼±¾ðµÈ º¯¼ö·Î ±×°ÍÀ» ¼±¾ðÇÏÁö ¾ÊÀº ÇÔ¼ö ³»ºÎ¿¡¼­µµ ÀνĵǴ º¯¼ö¸¦ ¸»ÇÑ´Ù. ¸¸¾à ¾î¶² ÇÔ¼ö¿¡¼­ Àü¿ªº¯¼ö¿Í °°Àº À̸§À¸·Î Áö¿ªº¯¼ö¸¦ ¼±¾ðÇÒ °æ¿ì ±× ÇÔ¼ö ³»¿¡¼­´Â Áö¿ªº¯¼ö°¡ ¿ì¼±ÇÑ´Ù. Áï Àü¿ªº¯¼ö¿Í Áö¿ªº¯¼öÀÇ À̸§ÀÌ °°Àº °æ¿ì Àü¿ªº¯¼ö´Â ¹«½ÃµÇ°í Áö¿ªº¯¼ö¸¸ÀÌ ¿µÇâÀ» ¹ßÈÖÇÑ´Ù. Àü¿ªº¯¼ö´Â °íÁ¤ÀûÀÎ ¸Þ¸ð¸®·Î ÇÒ´ç¹ÞÁö¸¸, Áö¿ªº¯¼ö´Â ½ºÅÿ¡ Æ÷ÇԵǾî ÇÔ¼ö°¡ ºÒ¸± ¶§¿¡ ÇÒ´çµÇ°í, ÇÔ¼ö¸¦ ³¡³¾ ¶§ »ç¶óÁø´Ù

    int global;/*Àü¿ªº¯¼ö. ¸ðµç ÇÔ¼ö¿¡¼­ ÀνĵȴÙ*/

    int test1(void)

      {

      int local; /*ÇÔ¼ö ³»ºÎ¿¡¼­ ¼±¾ðÇÏ¿´À¸¹Ç·Î Áö¿ªº¯¼ö, Áö¿ªº¯¼ö´Â ÀÌ ÇÔ¼ö

      ³»ºÎ¿¡¼­¸¸ ÀνĵȴÙ.*/

      local = 1;

      global=2; /*Àü¿ªº¯¼öÀ̹ǷÎ, ¼±¾ðÇÏÁö ¾ÊÀº ÇÔ¼ö ³»ºÎ¿¡¼­µµ ÀνĵȴÙ.*/

      }

    int test2(void)

      {

      int local; /* Áö¿ªº¯¼ö. ÀÌ Áö¿ªº¯¼ö´Â ÇÔ¼ö test1()ÀÇ Áö¿ªº¯¼öÀÎ local°ú´Â

      ¾Æ¹«·± °ü°è°¡ ¾ø´Ù*/

      int global; /*ÇÔ¼ö ³»ºÎ¿¡¼­ ¼±¾ðÇÏ¿´À¸¹Ç·Î Áö¿ªº¯¼ö, Àü¿ªº¯¼öÀÎ global°ú

      À̸§ÀÌ °°À¸¹Ç·Î Àü¿ªº¯¼ö globalÀº ¹«½ÃµÇ°í, Áö¿ªº¯¼öÀÎ global

      ¸¸ÀÌ ÀνĵȴÙ.*/

      local = 1;

      global=2; /*Àü¿ªº¯¼öÀÎ global°ú´Â ¾Æ¹«·± °ü°è°¡ ¾ø°í Áö¿ªº¯¼öÀÎ global·Î

      µ¿ÀÛÇÑ´Ù.*/

      }

static º¯¼ö

ÇÔ¼ö ³»ºÎ¿¡¼­ ¼±¾ðµÈ static º¯¼ö´Â ±× ÇÔ¼ö ¾È¿¡¼­¸¸ Àνĵȴٴ Á¡¿¡¼­´Â °ÍÀº ÀϹÝÀûÀÎ Áö¿ªº¯¼ö¿Í µ¿ÀÏÇÏ´Ù. ±×·¯³ª ÇÔ¼ö ³»ÀÇ ÀÏ¹Ý Áö¿ªº¯¼ö¿Í´Â ´Þ¸® static º¯¼ö´Â ÀÏÁ¤ÇÑ ¸Þ¸ð¸®¸¦ ÇÒ´ç¹Þ±â ¶§¹®¿¡ ÇÔ¼ö¸¦ Á¾·áÇصµ »ç¶óÁöÁö ¾Ê°í °è¼Ó ±× °ªÀ» À¯ÁöÇÑ´Ù.

    void test(void)

      {

      int local=10; /* Áö¿ªº¯¼ö. ÇÔ¼ö¿¡ ÁøÀÔÇÒ ¶§¸¶´Ù 10À¸·Î ÃʱâÈ­µÇ°í, ÇÔ¼ö¸¦ Á¾·áÇÏ¸é »ç¶óÁø´Ù */

      static int slocal=10; /* staticÇü º¯¼ö, ÇÔ¼ö¸¦ óÀ½ ºÎ¸¦ ¶§¸¸ 10À¸·Î ÃʱâÈ­µÇ°í ÇÔ¼ö¸¦ Á¾·áÇصµ ±× °ªÀ» °è¼Ó À¯ÁöÇÑ´Ù*/

      local++; /* ¿¬»ê°á°ú´Â ¾ðÁ¦³ª 11ÀÌ µÈ´Ù*/

      slocal++; /* ¿¬»ê°á°ú´Â ÇÔ¼ö¸¦ ºÎ¸¦ ¶§¸¶´Ù Áõ°¡ÇÑ´Ù */

      }

    void main(void)

      {

      test(); /* ÇÔ¼ö¸¦ óÀ½ ºÎ¸¦ ¶§ test()ÇÔ¼öÀÇ slocalÀÇ °ªÀÌ 11·Î ÃʱâÈ­µÇ°í slocal++ ¿¬»ê°á°ú slocalÀÇ °ªÀº 11°¡ µÈ´Ù*/

      test(); /* ´Ù½ÃÇѹø test()ÇÔ¼ö¸¦ ºÎ¸¦ ¶§ slocalÀÇ °ªÀº 11·Î À¯ÁöÇÏ°í ÀÖÀ¸¹Ç·Î slocal++ ¿¬»ê °á°ú slocalÀÇ °ªÀº 12°¡ µÈ´Ù */

      }

  • ºñÆ®´ÜÀ§ Á¦¾î

ÁÖº¯±â±â¸¦ Á¦¾îÇÏ´Ù º¸¸é ¹ÙÀÌÆ® ´ÜÀ§º¸´Ù´Â ºñÆ®´ÜÀ§°¡ Æí¸®ÇÒ ¶§°¡ ¸¹´Ù. ¿¹¸¦ µé¾î ½ºÅܸðÅÍ(STEPPING MOTOR) Á¦¾î¿¡¼­ ºñÆ®½ÅÈ£¸¦ ¾î¶»°Ô Á¶ÇÕÇÏ´À³Ä¿¡ µû¶ó ȸÀü¹æÇâÀ̳ª ±¸µ¿¹æ¹ýÀÌ ´Þ¶óÁö°Ô µÈ´Ù. C¾ð¾î¿¡´Â ºñÆ®´ÜÀ§ÀÇ ³í¸®¿¬»ê°ú ºñÆ®´ÜÀ§ Á¦¾î¸¦ À§ÇÑ Áغñ°¡ µÇ¾îÀÖ´Ù.

ºñÆ®´ÜÀ§ ³í¸® ¿¬»êÀÚ

¿¬»êÀÚ

³»¿ë

¿¹

&

ºñÆ®´ÜÀ§ ³í¸®°ö(AND)

y = a&0x0F; /*aÀÇ ÇÏÀ§ 4ºñÆ®¸¸ ¾ò´Â´Ù.*/

|

ºñÆ®´ÜÀ§ ³í¸®ÇÕ(OR)

y = a|0x0F /*aÀÇ ÇÏÀ§ 4ºñÆ®¸¦ ¸ðµÎ 1·Î ¸¸µç´Ù*/

~

ºñÆ®´ÜÀ§ ºÎÁ¤(1ÀÇ º¸¼ö)

y = ~0x00; /*y¸¦ 0xFF·Î ¸¸µç´Ù*/

^

ºñÆ®´ÜÀ§ ¹èŸÀû OR

y = a^0xFF; /*aÁß ÇØ´çºñÆ®°¡

1À̸é 0À¸·Î ¸¸µç´Ù*/;

<<

¿ìÃøÀ¸·Î À̵¿

y = 0x1<<2; /*0x1À» ¿ìÃøÀ¸·Î 2ºñÆ® À̵¿, y=0x4°¡ µÈ´Ù*/

>>

ÁÂÃøÀ¸·Î À̵¿

y = 0x2>>1; /*0x2¸¦ ÁÂÃøÀ¸·Î 1ºñÆ® À̵¿,y=0x1ÀÌ µÈ´Ù*/

ºñÆ®Çʵå(BIT FIELD)

ºñÆ®Çʵå´Â Á¤¼öÇü º¯¼ö¸¦ ºñÆ® ´ÜÀ§·Î ÂÉ°³¾î °¢ ºñÆ®(¶Ç´Â º¹¼öÀÇ ºñÆ®)¿¡ ÇØ´çÇÏ´Â Çʵ带 Á¦¾îÇϵµ·Ï ¸¸µç º¯¼öÇüÀ¸·Î ´ÙÀ½°ú °°ÀÌ Á¤ÀÇÇÑ´Ù.

    sturct ±¸Á¶Ã¼¸í{

    unsigned Çʵå1:ºñÆ®Æø;

    unsigned Çʵå2:ºñÆ®Æø;

    :

    }º¯¼ö¸í;

°¢ Çʵ忡 ´ëÇÑ Á¢±ÙÀº ±¸Á¶Ã¼(struct)¿Í µ¿ÀÏÇÏ°Ô ¡®.¡¯ ¿¬»êÀÚ¸¦ ÀÌ¿ëÇÑ´Ù.

    struct BITS{

    unsigned B0:1; /*LSB*/

    unsigned B1:1;

    unsigned B2:1;

    unsigned B3:1;

    unsigned B4:1;

    unsigned B5:1;

    unsigned B6:1;

    unsigned B7:1; /*MSB*/

    }b; /*ÃÑ 8ºñÆ®(1¹ÙÀÌÆ®)ÀÇ ºñÆ®Çʵ带 b¶ó´Â º¯¼ö¿¡ ÇÒ´ç*/

    b.B0 = 1; /* bº¯¼öÀÇ Ã¹¹ø° ºñÆ®(LSB)¸¦ 1·Î ¸¸µç´Ù*/

    b.B6 = 0; /* bº¯¼öÀÇ 7¹ø° ºñÆ®¸¦ 0À¸·Î ¸¸µç´Ù.*/¡¡

  • Åͺ¸-CÀÇ Çϵå¿þ¾î °ü·Ã ÇÔ¼ö ¿ä¾à

disable() ÇÔ¼ö

80x86 CPUÀÇ Çϵå¿þ¾î ÀÎÅÍ·´Æ®¸¦ ±ÝÁö½ÃŲ´Ù. ÀÌ ÇÔ¼ö´Â ¾î¼Àºí·¯ CLI(clear interrupt)¿Í µ¿ÀÏÇÑ È¿°ú¸¦ ³½´Ù. disable()ÇÔ¼ö´Â 80x86 CPU Äھ°Ô ÀÎÅÍ·´Æ® ±ÝÁö ¸í·ÉÀ» ³»¸®´Â °ÍÀÌ°í, ÁÖº¯ Çϵå¿þ¾î¿¡ Á÷Á¢ÀûÀÎ ¿ªÇÒÀ» ¼öÇàÇÏÁö´Â ¾Ê´Â´Ù. IBM-PC¿¡¼­ ÀÎÅÍ·´Æ®¿Í °ü·ÃµÈ Çϵå¿þ¾î ºÎÇ°Àº 80x86 CPU¿Í 8259A PIC(ÇÁ·Î±×·¡¸Óºí ÀÎÅÍ·´Æ® Á¦¾î±â)ÀÌ´Ù.

386EX ÇÁ·Î¼¼¼­¿¡´Â 80x86°ú ¼ÒÇÁÆ®¿þ¾îÀûÀ¸·Î ȣȯµÇ´Â 386SX CPUÄÚ¾î ÀÌ¿Ü¿¡µµ Çϵå¿þ¾î ÀÎÅÍ·´Æ®¸¦ °üÀåÇÏ´Â ÀÎÅÍ·´Æ® Á¦¾î±âÀÎ 8259A°¡ ³»ÀåµÇ¾î ÀÖ´Ù. TB-386EX º¸µå¿¡¼­´Â Çϵå¿þ¾î ÀÎÅÍ·´Æ® Á¦¾î±â°¡ IBM-PC/AT¿Í µ¿ÀÏÇÏ°Ô 2°³·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, Çϳª´Â ¸¶½ºÅÍ 8259A·Î ¶Ç Çϳª´Â ½½·¹À̺ê 8259A·Î ¼³Á¤µÇ¾î ÀÖ´Ù. ¸ðµç Çϵå¿þ¾î ÀÎÅÍ·´Æ®´Â ¸¶½ºÅÍ 8259AÀÇ Ãâ·ÂÇÉÀ» ÅëÇØ CPU ÄÚ¾î(386SX)¿¡ ¿¬°áµÇ´Âµ¥, enable()°ú disable() ÇÔ¼ö´Â ¸¶½ºÅÍ 8259AÀÇ Ãâ·ÂÇÉ°ú CPU ÄÚ¾îÀÇ ¿¬°á ¿©ºÎ¸¦ °áÁ¤ÇÑ´Ù.

8259A ÀÔ·ÂÇÉ¿¡ ¿ä±¸ÇÑ ÀÎÅÍ·´Æ® (IRQ0,IRQ1..)´Â 8259AÀÇ ³»ºÎ ·¹Áö½ºÅÍ¿¡ ÀÇÇØ ÀÎÅÍ·´Æ® ¿ì¼±¼øÀ§, ±ÝÁö/Çã°¡ ¿©ºÎ°¡ ó¸®µÈ ÈÄ ÀÎÅÍ·´Æ®¸¦ ¹ß»ýÇÒ Á¶°ÇÀÌ µÇ¸é 8259A°¡ 80x86 CPU¿¡ ÀÎÅÍ·´Æ®¸¦ °É°Ô µÈ´Ù. ÀÌ ¶§ 8259A·ÎºÎÅÍ ¿ä±¸µÈ ÀÎÅÍ·´Æ®¸¦ ±ÝÁöÇÏ´Â °ÍÀÌ ¹Ù·Î disable()ÇÔ¼öÀÇ ¿ªÇÒÀÌ´Ù.

enable() ÇÔ¼ö

80x86 CPUÀÇ Çϵå¿þ¾î ÀÎÅÍ·´Æ®¸¦ Çã°¡ÇÑ´Ù. ÀÌ ÇÔ¼ö´Â disable()ÇÔ¼ö¿Í ¹Ý´ëµÇ´Â µ¿ÀÛÀ» Çϸç, ´ÙÀ½°ú °°ÀÌ Á¤ÀǵǾî ÀÖ´Ù.

    #include <dos.h>

    void enable(void);

    void disable(void);

FP_SEG(), FP_OFF()

far Æ÷ÀÎÅÍ (1MB ¾îµå·¹½º °ø°£À» Áö½ÃÇÏ´Â Æ÷ÀÎÅÍ)ÀÇ ¼¼±×¸ÕÆ®¿Í ¿É¼ÂÀ» ¾ò´Â ¸ÅÅ©·Î ÇÔ¼ö. far Æ÷ÀÎÅÍ´Â 4¹ÙÀÌÆ®·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸ç, À§ÂÊÀÇ 2¹ÙÀÌÆ®´Â ¼¼±×¸ÕÆ®¸¦ ³ªÅ¸³»°í ¾Æ·¡ÂÊÀÇ 2¹ÙÀÌÆ®´Â ¿É¼ÂÀ» ³ªÅ¸³½´Ù.

    unsigned int seg,off;

    void far* fp=0x12345678L; /* far Æ÷ÀÎÅÍ fp¸¦ Á¤ÀÇÇÏ°í fp¿¡ 0x12345678 Áï,

    fp = 0x1234:0x3456 ·Î ¸¸µç´Ù.*/

    seg=FP_SEG(fp); /* fpÀÇ ¼¼±×¸ÕÆ®(=0x1234)¸¦ ¾ò´Â´Ù */

    off=FP_OFF(fp); /* fpÀÇ ¿É¼Â(=0x3456)À» ¾ò´Â´Ù*/ 

peek(), peekb(), poke(), pokeb()

ÁÖ¾îÁø ¼¼±×¸ÕÆ®/¿É¼ÂÀÌ Áö½ÃÇÏ´Â ¸Þ¸ð¸®¿¡ µ¥ÀÌŸ¸¦ Àаí/¾²´Â ÇÔ¼öÀÌ´Ù.

    unsigned char byte;

    unsigned int word;

    unsigned int seg=0x1234,off=0x3456;

    byte = peekb(seg,off); /* ¸Þ¸ð¸®ÀÇ seg:off¿¡¼­ 1 ¹ÙÀÌÆ®¸¦ Àд´٠*/

    word = peek(seg,off); /* ¸Þ¸ð¸®ÀÇ seg:off¿¡¼­ 2 ¹ÙÀÌÆ®(=1¿öµå)¸¦ Àд´٠*/

    pokeb(seg,off,byte); /* ¸Þ¸ð¸®ÀÇ seg:off¿¡¼­ 1 ¹ÙÀÌÆ® µ¥ÀÌŸ(byte)¸¦ ¾´´Ù */

    poke(seg,off,word); /* ¸Þ¸ð¸®ÀÇ seg:off¿¡¼­ 2 ¹ÙÀÌÆ® µ¥ÀÌŸ(word)¸¦ ¾´´Ù */ 

inport(), inportb(), outport(), outportb()

V25, 386EX ÇÁ·Î¼¼¼­´Â 80x86°ú ¸¶Âù°¡Áö·Î ¸Þ¸ð¸® ¸Ê°ú IO¸ÊÀÌ ±¸º°µÇ¾î ÀÖ´Ù. peek(), poke() ÇÔ¼ö°¡ ¸Þ¸ð¸®¸¦ ´Ù·ç´Â ÇÔ¼öÀÎ ¹Ý¸é, inport(), outport()´Â IOÆ÷Æ®·ÎºÎÅÍ µ¥ÀÌŸ¸¦ ÁÖ°í¹Þ´Â ¿ªÇÒÀ» ÇÑ´Ù.

    unsigned char byte;

    unsigned int word;

    unsigned int port=0x100;

    byte = inportb(port); /*IOÆ÷Æ®ÀÇ port¹øÁö(=0x100)¿¡¼­ 1 ¹ÙÀÌÆ®¸¦ Àд´Ù*/

    word = inport(port); /*IOÆ÷Æ®ÀÇ port¹øÁö(=0x100)¿¡¼­ 2 ¹ÙÀÌÆ®¸¦ Àд´Ù*/

    outportb(port,byte); /*IOÆ÷Æ®ÀÇ port¹øÁö(=0x100)¿¡ 1 ¹ÙÀÌÆ®(=byte)¸¦ ¾´´Ù*/

    outport(port,word); /*IOÆ÷Æ®ÀÇ port¹øÁö(=0x100)¿¡ 2 ¹ÙÀÌÆ®(=word)¸¦ ¾´´Ù*/

setvect(), getvect()

³»ÀåÇüÁ¦¾î±â¸¦ ²Ù¹Ì´Ù º¸¸é ÀڽŸ¸ÀÇ ÀÎÅÍ·´Æ® ·çƾÀ» ´Ù·ç¾î¾ß ÇÒ °æ¿ì°¡ »ý±ä´Ù. ÁÖ±âÀûÀ¸·Î Å°º¸µå¸¦ °Ë»çÇؼ­ ¹«½¼ Å°°¡ ´­·ÁÁ³³ª¸¦ ¾Ë¾Æ³½´Ù´ø°¡, ¿ÜºÎ¿¡¼­ ÀÎÅÍ·´Æ® ¿ä±¸°¡ ¿ÔÀ» ¶§, ÀûÀýÇÑ ÀÀ´äÀ» ÇØÁÖ´Â °æ¿ì¿¡ »ç¿ëÇÏ´Â ÇÔ¼ö´Ù. ÀÌ ÇÔ¼ö¿¡¼­´Â ÇÔ¼ö Æ÷ÀÎÅ͸¦ »ç¿ëÇϴµ¥, ÇÔ¼ö Æ÷ÀÎÅÍ¿¡ Ä£¼÷ÇÏÁö ¾Ê´Â »ç¶÷Àº ¿¹Á¦¸¦ °ø½Äó·³ ¿Ü¿ö¼­ ¾²°í, ±âȸ°¡ ÀÖÀ» ¶§ ÀÚ¼¼ÇÑ ¿ø¸®¸¦ ÆľÇÇصµ ÁöÀåÀÌ ¾øÀ» °ÍÀÌ´Ù.

»õ·Ó°Ô ¼³Ä¡ÇÒ ÀÎÅÍ·´Æ®´Â void interrupt ¶ó´Â Åͺ¸-CÀÇ Å°¿öµå·Î ½ÃÀÛÇØ¾ß ÇÑ´Ù. ÀÌ ¿¹Á¦´Â ŸÀÌ¸Ó ÀÎÅÍ·´Æ®(ÀÎÅÍ·´Æ® º¤Å͹øÈ£ 0x1Ch)¸¦ »õ·Î ¸¸µé¾î ŸÀÌ¸Ó ÀÎÅÍ·´Æ®°¡ °É¸± ¶§¸¶´Ù timer_count¶ó´Â º¯¼ö¸¦ 1¾¿ Áõ°¡½ÃÅ°´Â µ¿ÀÛÀ» ÇÏ´Â °ÍÀÌ´Ù.

    /* »õ·Î¿î ŸÀÌ¸Ó ÀÎÅÍ·´Æ® ·çƾÀ» ¸¸µç´Ù */

    /* TB-386EX º¸µåÀÇ Å¸ÀÌ¸Ó ÀÎÅÍ·´Æ®(int 1Ch)´Â Çϵå¿þ¾î ÀÎÅÍ·´Æ®À̸ç 10ms¸¶´Ù ÀÎÅÍ·´Æ®°¡ ¹ß»ýÇÑ´Ù */

    /* »õ·Ó°Ô ÀÛ¼ºÇÑ ÀÎÅÍ·´Æ® ·çƾ new_int1Ch */

    int timer_count=0; /* Àü¿ªº¯¼ö¸¦ ¼±¾ðÇÑ´Ù.*/

    void interrupt new_int1Ch(void)

      {

      enable(); /* ¶Ç ´Ù¸¥ ÀÎÅÍ·´Æ®¸¦ Çã°¡ÇÑ´Ù */

      timer_count++; /* ÀÎÅÍ·´Æ®°¡ °É¸± ¶§¸¶´Ù timer_count°ªÀ» Áõ°¡½ÃŲ´Ù */

      }

    void my_function(void)

      {

      for(;;) /* ¹«ÇÑ ·çÇÁ¸¦ µ·´Ù*/

      if(timer_count>1000) break; /* timer_count°¡ 1000º¸´Ù Å©¸é for¹®À» Å»ÃâÇÑ´Ù. */

      }

    void main(void)

      {

      void interrupt (*old_int1Ch)(); /* ÀÎÅÍ·´Æ®ÇÔ¼ö Æ÷ÀÎÅÍ */

      old_int1Ch = getvect(0x1C); /* ÀÎÅÍ·´Æ® 0x1C ¼­ºñ½º·çƾÀÇ ¹øÁö¸¦ old_int1Ch¿¡ ÀúÀåÇÑ´Ù*/

      setvect(0x1C,new_int1Ch); /* »õ·Î¿î ÀÎÅÍ·´Æ®(new_int1Ch)¸¦ ¼³Ä¡ÇÑ´Ù */

      my_function(); /* ÀÏ¹Ý ÇÔ¼ö¸¦ ½ÇÇàÇÑ´Ù */

      setvect(0x1C,old_int1Ch); /* ¸ðµç ÀÏÀÌ Á¾·áµÇ¸é ¿ø·¡ÀÇ ÀÎÅÍ·´Æ®(old_int1Ch)¸¦ ÀÎÅÍ·´Æ®¹øÈ£ 0x1Ch·Î º¹±¸ÇÑ´Ù */

      }

int86()

80x86 CPU¿¡ ¼ÒÇÁÆ®¿þ¾î ÀÎÅÍ·´Æ®¸¦ ¹ß»ý½ÃÅ°´Â ÇÔ¼öÀÌ´Ù. ·¹Áö½ºÅÍ¿¡ Àû´çÇÑ °ªÀ» ³Ö°í, ÀÎÅÍ·´Æ®¸¦ °É¾î¼­, ÀÎÅÍ·´Æ®·çƾ¿¡¼­ ó¸®ÇÑ ·¹Áö½ºÅÍÀÇ °ªÀ» ¾òÀ» ¼ö ÀÖ´Ù. ÀÌ ÇÔ¼ö¿¡¼­´Â Åͺ¸-C¿¡¼­ Á¦°øÇÏ´Â REGS¶ó´Â °ø¿ëü(union)¿Í ÀÌ °ø¿ëüÀÇ Ç׸ñÀÎ µÎ°³ÀÇ ±¸Á¶Ã¼ WORDREGS, BYTEREGS¸¦ »ç¿ëÇÏ¿© ·¹Áö½ºÅÍ °ªÀ» Àü´ÞÇÑ´Ù.

    struct WORDREGS {

      unsigned int ax, bx, cx, dx, si, di, cflag, flags;

      }; /* 8°³ÀÇ ¿öµå(2¹ÙÀÌÆ®) ´ÜÀ§ ·¹Áö½ºÅ͸¦ Ç׸ñÀ¸·ÎÇÑ ±¸Á¶Ã¼*/

    struct BYTEREGS {

      unsigned char al, ah, bl, bh, cl, ch, dl, dh;

      }; /* 8°³ÀÇ ¹ÙÀÌÆ®´ÜÀ§ ·¹Áö½ºÅ͸¦ Ç׸ñÀ¸·Î ÇÑ ±¸Á¶Ã¼*/

    unionREGS{

      structWORDREGS x; /*·¹Áö½ºÅ͸¦ ¿öµå ´ÜÀ§·Î Á¶ÀÛ*/

      structBYTEREGS h; /*·¹Áö½ºÅ͸¦ ¹ÙÀÌÆ® ´ÜÀ§·Î Á¶ÀÛ*/

      };¡¡

REGS °ø¿ëüÀÇ Ç׸ñÀº 8¿öµå(16¹ÙÀÌÆ®) Å©±âÀÇ WORDREGS¿Í 4¿öµå(8¹ÙÀÌÆ®) Å©±âÀÇ BYTEREGSÀÌ°í, WORDREGS¿Í BYTEREGS°¡ °ãÄ¡´Â ¾Æ·¡ÂÊ 4¿öµå´Â WORDREGSÀÇ Ç׸ñ°ú BYTEREGSÀÇ Ç׸ñÀ¸·Î ÀÚÀ¯·Ó°Ô Á¢±ÙÇÒ ¼ö ÀÖ´Ù. Áï REGS ÇüÀÇ º¯¼ö rÀ» ´ÙÀ½°ú °°ÀÌ ¼±¾ðÇϸé 80x86ÀÇ CPU ·¹Áö½ºÅÍ AX¸¦ ´ÙÀ½°ú °°ÀÌ Á¶ÀÛÇÒ ¼ö ÀÖ´Ù. Âü°í·Î 80x86ÀÇ AX·¹Áö½ºÅÍ´Â 16ºñÆ® ·¹Áö½ºÅÍÀÌ¸ç »óÀ§ 8ºñÆ®¸¦ AH, ÇÏÀ§ 8ºñÆ®¸¦ AL·Î Ç¥±âÇÑ´Ù. 80x86ÀÇ BX, CX, DX ·¹Áö½ºÅ͵µ °°Àº ¹æ¹ýÀ» Àû¿ëÇÑ´Ù.

    REGS r;

    r.x.ax=0x1234 /* ÀÇ»çÀûÀ¸·Î 80x86 CPUÀÇ AX ·¹Áö½ºÅÍ¿¡ 0x1234¸¦ ÇÒ´çÇÑ´Ù.*/

    /* AX ·¹Áö½ºÅÍ¿¡ ´ëÇÑ ¿öµå´ÜÀ§ 󸮴 ´ÙÀ½°ú °°ÀÌ ¹ÙÀÌÆ® ´ÜÀ§·Î Çصµ

    µ¿ÀÏÇÑ °á°ú¸¦ ³½´Ù*/

    r.h.ah=0x12; /* ÀÇ»çÀûÀ¸·Î AH¿¡ 0x12¸¦ ÇÒ´ç */

    r.h.al=0x34; /* ÀÇ»çÀûÀ¸·Î AL¿¡ 0X34¸¦ ÇÒ´ç */

int86()ÇÔ¼ö¸¦ »ç¿ëÇÑ ¿¹¸¦ º»´Ù.

    REGS rin,rout;

    rin.h.ah = 0x0E;

    rin.h.al = ''S'';

    int86(0x10,&rin,&rout); /* ÀÎÅÍ·´Æ® 0x10h (ºñµð¿À ÀÎÅÍ·´Æ®)¸¦ °Ç´Ù. À̶§ AH=0x0E, AL=''S''ÀÇ °ªÀ» ³Ö´Â´Ù. 󸮰á°ú´Â rout¿¡ ½Ç·Á ³ª¿Â´Ù */



÷¾ð ´Þ±â
À̸§ : ¾ÏÈ£ :
¹øÈ£    Á¦¸ñ...(÷¾ð) ÀÛ¼ºÀÏ Á¢¼Ó
xxx [°øÁö]ÀÚÀ¯°Ö·¯¸® µî·Ï ¿À·ù ¼öÁ¤ ¿Ï·á 2017-12-22 14980
xxx [°øÁö]ÀÚ·á½Ç ´Ù¿î·Îµå ¿À·ù ó¸® 2017-12-01 15703
64 [ÀϹÝ]  window7 ³×Æ®¿öÅ© µå¶óÀÌºê ¿¬°á ÈÄ ÀçºÎÆýà °è¼Ó °èÁ¤ ¹°¾îº¸´Â°æ¿ì 2016-09-03(Åä) 2835
63 [ÀϹÝ]  qhdÀÌ»ó dp³ª hdmi Çػ󵵳ª ¾ÆÀÌÄÜ ½ò¸² ¹ö±× 2016-07-05(È­) 5088
62 [ÀϹÝ]  ´ÙÀ½ ÆÌ ¸¦·¹ÀÌ¾î ¿Àµð¿À-ºñµð¿À ½ºÅ² º°µµ 2015-10-25(ÀÏ) 2789
61 [ÀϹÝ]  À©µµ¿ì 8_8.1_10 °ü¸®ÀÚ(Administrator) °èÁ¤À¸·Î ¾Û ½ÇÇà¹æ¹ý 2015-05-14(¸ñ) 3340
60 [ÀϹÝ]  Windows 7¿¡¼­ thumbs.db ÆÄÀÏÀÌ »ý¼ºµÇÁö ¾Êµµ·Ï ¼³Á¤Çϱâ 2015-05-12(È­) 15517
59 [ÀϹÝ]  CAM350À¸·Î 2°³ÀÇ °Å¹ö¸¦ Çϳª·Î ÇÕÄ¡±â 2014-10-17(±Ý) 9176
58 [ÀϹÝ]  È­ÀÏ°Ë»ö½Ã ¿ë·®º° ±âŸ Á¶°Çº° 2014-06-13(±Ý) 3216
57 [ÀϹÝ]  IE 8¿¡¼­ ¼¼¼Ç °øÀ¯ ¾ÈÇÏ´Â ¹æ¹ý 2014-04-08(È­) 3337
56 [ÀϹÝ]  GMT(UTC) Time Zone 2013-06-23(ÀÏ) 6683
55 [ÀϹÝ]  Àü¼± AWGº° °Å¸®ÀúÇ× 2012-06-28(¸ñ) 9259
50 [ÀϹÝ]  16700 ½Ã¸®Áî ·ÎÁ÷ ºÐ¼®±â°¡ Á¦´ë·Î ºÎÆõÇÁö ¾Ê¾Æ Àç¼³Á¤ 2012-06-02(Åä) 3682
49 [ÀϹÝ]  C C++ ¿¬»ê ¿ì¼±¼øÀ§ ..[1] 2012-02-16(¸ñ) 3605
48 [ÀϹÝ]  ±×¸®½º(Èñ¶ø) ¹®ÀÚ 2011-02-10(¸ñ) 5751
47 [ÀϹÝ]  ASCII 5 By 7 Font 2011-01-30(ÀÏ) 4572
46 [ÀϹÝ]  PCB ¿ë¾î Á¤¸® 2011-01-15(Åä) 19483
45 [ÀϹÝ]  Data types for Oracle 8 - Oracle 11g + PL/SQL 2010-12-20(¿ù) 14572
44 [ÀϹÝ]  Keyboard Scan Codes 101-102-104-key 2010-07-10(Åä) 4832
43 [ÀϹÝ]  ¸ð¸£½ººÎÈ£ 2010-05-13(¸ñ) 4816
42 [ÀϹÝ]  MySQL ¸í·É¾î ¸ðÀ½ 2010-04-29(¸ñ) 4877
41 [ÀϹÝ]  NateOn ÇÖŬ¸³ ±¤°íâ ¸ø ¶ß°Ô Çϱâ.. 2010-04-10(Åä) 5217
°Ë»ö :
Page : ÀÌÀü 1  2  3  4  5  6  7  8  9  10  ´ÙÀ½




Copyright 2003-2024 ¨Ï ±èÁ¾È£. All rights reserved. kimjongho.co.kr kimjongho.kr kimjongho.net kimjongho.com