/* 연습용 코드 */
#define MAX_QUEUE_SIZE 100
struct{
uint16_t head;
uint16_t tail;
int8_t storedQueueDataCount;
uint32_t queue[MAX_QUEUE_SIZE];
} myCircularQueue;
void putQueue(uint32_t data)
{
if((myCircularQueue.tail + 1) % MAX_QUEUE_SIZE == myCircularQueue.head)
printf("Queue is full");
else
{
myCircularQueue.queue[myCircularQueue.tail++ % MAX_QUEUE_SIZE] = data;
myCircularQueue.storedQueueDataCount++;
}
}
void getQueue(uint32_t *data)
{
if(myCircularQueue.head == myCircularQueue.tail)
printf("Queue is empty");
else
{
*data = myCircularQueue.queue[myCircularQueue.head++ % MAX_QUEUE_SIZE];
myCircularQueue.storedQueueDataCount--;
}
}
void QueueTest()
{
uint32_t testArray[30] = {0, };
uint32_t getArray[30] = {0, };
uint32_t tempSize;
tempSize = sizeof(myCircularQueue);
memset(&myCircularQueue, 0, tempSize);
for(int i = 0; i < sizeof(testArray) / sizeof(uint32_t); i++)
{
testArray[i] = i*i;
putQueue(testArray[i]);
}
for(int i = 0; i < sizeof(getArray) / sizeof(uint32_t); i++)
{
getQueue(&getArray[i]);
}
}
/* 연습용코드 끝 */
'알고 있으면 유용한 것들' 카테고리의 다른 글
재건축 재개발 용어 간략 정리 (0) | 2021.10.07 |
---|---|
전세계 암치료 잘하는 병원 순위 (서울아산병원 세계 5위) (0) | 2021.10.03 |
모니터 브랜드 계급 서열 ver2.18 (0) | 2021.09.23 |
갤럭시 A32, A42 같은 보급형 스마트폰 속도 느림 현상 해결방법! (FEAT. 초기화) (0) | 2021.09.23 |
헬스장 1년이상 회원권등록 꿀팁 ver 7.81 (호구 안당하기!!) (0) | 2021.09.12 |