ÇÁ·Î±×·¡¹Ö
ù ÆäÀÌÁö ·£´ý ±Û ȸ¿ø°¡ÀÔ ·Î±×ÀÎ
ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 17:57:44
URL https://te31.com/rgr/view.php?id=study&no=2479 ¸ð¹ÙÀÏ È­¸é
[c/c++]¸µ¹öÆÛ °ü·ÃÇÏ¿© Áú¹® µå·Á¿ä

¾È³çÇϼ¼¿ä

¸µ¹öÆÛ(ȯÇüÅ¥)¸¦ ¸¸µé°í Àִµ¥ ÇöÀç »ç¿ëÁßÀÎ »çÀÌÁ ±¸ÇÏ´Â °æ¿ì

int CRingBuffer::GetUseSize(void)
{
        if (_rear > _front)
        {
                return _rear - _front;
        }
        else if (_rear < _front)
        {
                return _rear + (_size - _front);
        }
        else
        {
                // °°À¸¸é
                return 0;
        }
}

ÀÌ·±½ÄÀ¸·Î front¿Í rear¸¦ È°¿ëÇؼ­ ±¸ÇÏ°í ÀÖ½À´Ï´Ù.
±×·±µ¥ ÀÌ°Ô ¸ÖƼ½º·¹µå ȯ°æÀÌ µÇ¸é, Àüü »çÀÌÁî°¡ 10, rear°¡ 4, front°¡ 6ÀÌ¿´À»¶§ µÎ¹ø° Á¶°ÇÀ» ÅÀ´Âµ¥ ±× »çÀÌ front°¡ ÇѹÙÄû µ¹¾Æ 1ÀÌ µÇ¹ö¸± °æ¿ì °á°ú°¡ 13ÀÌ µÇ¾î¹ö¸³´Ï´Ù.

ÀÎÅ¥¸¦ ÇÒ¶§ (Àüü»çÀÌÁî - »ç¿ëÁßÀλçÀÌÁî) ·Î ³ÖÀ» ¼ö ÀÖ´Â »çÀÌÁ °è»êÇؼ­ memcpy¸¦ ÇÏ°Ô µÇ´Âµ¥ À§ÀÇ °æ¿ì¿¡ ¸âÄ«ÇÇÇÒ »çÀÌÁî°¡ -3ÀÌ µË´Ï´Ù.

ÀÌ·± »óȲÀ϶§ µ¿±âÈ­ °´Ã¼°°Àº°É ¾È¾²°í ÇØ°áÇÒ ¹æ¹ýÀÌ ÀÖ³ª¿ä?

¹öÆÛ¿À¹öÇÃ·Î¿ì °Ë»öÇؼ­ ÀÌ·±°É ã±â´Â Çߴµ¥ ÀÌ°É·Î ÇØ°áÀÌ µÉÁö ±Ã±ÝÇÕ´Ï´Ù..
//int remaining = (rear - front) + (-((int)(rear <= front)) & bufferSize);

Áú¹® | 1291¸íÀÌ Àоú¾î¿ä. 3.144.109.5

0
1 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 18:48:50
2°³ ÀÌ»óÀÇ ¾²·¹µå¿¡¼­ ½á¾ß ÇÏ¸é ´ç¿¬È÷ µ¿±âÈ­¸¦ ÇؾßÁÒ..
ÇÑÁÙ¿¡ ¾´´Ù°í Çѹø¿¡ ½ÇÇàµÈ´Ù´Â º¸ÀåÀº ¾îµð¿¡µµ ¾øÀ¾´Ï´Ù
2 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 18:57:54
1// ÃÖ¼Ò´ÜÀ§ ¿ÀÆÛ·¹ÀÌ¼Ç ¸»¾¸À̽Ű¡¿ä? ±×·¯°íº¸´Ï Àú°Å ¸»°íµµ rear³ª front À̵¿½Ãų¶§ º¹»ç¸¦ Çѹø¿¡ ¸øÇϴ°æ¿ì(ÇѹÙÄû ³Ñ¾î°¡¼­ µµ´Â °æ¿ì)¿¡ µÎ¹ø¿¡ ³ª´²¼­°¡ ¾Æ´Ñ Çѹø¿¡ À̵¿ÇÏ¸é µ¿±âÈ­ ¹®Á¦°¡ ÇØ°áµÈ´Ù°í µé¾ú´Âµ¥ À̰͵µ ¹®Á¦°¡ ÀÖ³ª¿ä?
3 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 19:08:57
> Çѹø¿¡ À̵¿ÇÏ¸é µ¿±âÈ­ ¹®Á¦°¡ ÇØ°áµÈ´Ù°í µé¾ú´Âµ¥

µ¿±âÈ­ ÀåÄ¡¸¦ ¾²Áö ¾ÊÀ¸¸é ±×°É 'ÇÑ ¹ø' À̶ó°í º¸Àå¹ÞÀ» ¼ö°¡ ¾øÀ¾´Ï´Ù.
½ÉÁö¾î a=b; ³ª a++; °°Àº 1°³ÀÇ ¿¬»êÀÚÁ¶Â÷µµ ÇѹøÀ̶ó°í º¸ÀåÇÒ ¼ö ¾øÀ¾´Ï´Ù.
±×³É º¸±â¿£ ÇÑÁÙÀÌÁö¸¸ ¾î¼Àºí¸®´Ü±îÁö ³»·Á°¡¸é ¿©·¯°³ÀÇ ¸í·É¾î·Î ÂÉ°³Áö±â ¶§¹®ÀÔ´Ï´Ù.
ÀÚ¼¼ÇÑ°Ç atomic operation À» °Ë»öÇغ¸¼¼¿ä
4 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 19:26:43
atomic ½á¼­ ´Ù µ¿±âÈ­ ½ÃÄѾßÁ®
5 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 19:27:04
µ¿±âÈ­ ¸»°ï ´äÀ̾ø½À´Ï´Ù ¶ô ÀâÀ¸¼¼¿©
6 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 19:30:38
int a = 5 + 3

ÀÌ°Å ¾î¼À·¹º§(ÀÎÅÚ±âÁØ)·Î ³»·Á°¡¸é ÀÌ·¸°ÔµÊ

MOV BX, 5
MOV CX, 3
ADD BX, CX
OUT AX, [a]

´Ü¼øÇÑ add Çϳªµµ ¿©·¯°³ÀÇ ¿ÀÆÛ·¹À̼ÇÀ¸·Î ÀÌ·ç¾îÁ®ÀÖÀ¸´Ï µû¶ó¼­ µ¿±âÈ­¾øÀÌ´Â ³ë´ä
7 ºñ°ø°³ ¼Õ´Ô ¡¦ 2017-12-19 19:52:59
°Å±â¿¡ ÄÄÆÄÀÏ·¯ ÃÖÀûÈ­±îÁö °¡¹ÌµÇ¸é ±×¾ß¸»·Î È¥µ·ÀÇÄ«¿À½º (¹Ìħ)
´ñ±ÛÀ» ÀÛ¼ºÇÏ½Ç ¼ö ¾ø½À´Ï´Ù.
(±ÇÇÑÀÌ ¾ø´Â ȸ¿ø·¹º§)
¸ñ·ÏÀ¸·Î
¡â ÀÌÀü±Û: ÆÄ¿ö½© ¹ÌÄ¡°Ú½À´Ï´Ù ¤Ð¤Ð [2]
¡ä ´ÙÀ½±Û: ÀÚ¹Ù Áú¹® - ¸ÖƼ ¾²·¹µå [11]
ÀÌ¿ë¾à°ü | ±¤°í/Á¦ÈÞ | °³ÀÎÁ¤º¸Ãë±Þ¹æħ | ¹®ÀÇ/½Å°í | ¸ð¹ÙÀÏ TE31 | ¼­¹ö ºÎÇÏ : 16%
½Ç½Ã°£ Issue Ä¿¹Â´ÏƼ TE31 [¾ËÁö·Õ] ¨Ï 2002-2024
TOP arrow_upward