摘录


各位前辈,最近写一个程序遇到了一个问题,具体情况如下:
写的是循环队列;先看我自己写的一个,截取其中部分:

define         MAXSIZE  100

unsigned char   Queue[MAXSIZE] = {0}; unsigned char   front; unsigned char   rear;

BOOL FullQueue()      //判断是否队满 {     if(front == (rear+1)%MAXSIZE )         return TRUE;     else         return FALSE; }

BOOL EmptyQueue()    //判断是否对空 {     if(rear == front)         return TRUE;     else         return FALSE; } void EnQueue( unsigned char value)   //入队 {     if(!FullQueue())     {         Queue[rear] = value;         rear = (rear + 1) % MAXSIZE;     } } unsigned char DeQueue(void)       //出队 {     if(!EmptyQueue())     {            unsigned char value;         value = Queue[front];         front = (front + 1) % MAXSIZE;         return value;     } } 程序功能正常,但是因为我看到别人网上写的循环队列都是用结构体写的,所以自己也试了一下:

define  MAXSIZE  100

typedef struct QUEUE {     unsigned char   elem[MAXSIZE];     unsigned char   front;     unsigned char   rear; }QUEUE;

BOOL FullQueue(QUEUE Q) {     if(Q.front == (Q.rear+1)%MAXSIZE )         return TRUE;     else         return FALSE; } BOOL FullQueue(QUEUE Q) {     if(Q.front == (Q.rear+1)%MAXSIZE )         return TRUE;     else         return FALSE; } void EnQueue(QUEUE Q , unsigned char value) {     if(!FullQueue(Q))     {         Q.elem[Q.rear] = value;         Q.rear = (Q.rear + 1) % MAXSIZE;     } }

unsigned char DeQueue(QUEUE Q) {     unsigned char value;     value = Q.elem[Q.front];     Q.front = (Q.front + 1) % MAXSIZE;     return value; }

编译下来,使用结构体的程序 MAXSIZE=35  就达到了没有使用结构体 MAXSIZE = 150 占用的的资源。所以不恨很明白其中的原因,望大神指导一下。

点评

NULL

原文

点击这里查看原文

其它

本帖内容由21QA云收藏工具自动生成,欢迎使用。

系统消息 若觉得内容不错,请点击左上角的"赞"图标,以优化网站的内容呈现。 另外,请及时验证注册邮箱,否则收不到21QA发出的红包。 官方Q群:250203055

asked 27 Nov '14, 00:21

%E8%B7%AF%E4%BA%BA%E7%94%B2's gravatar image

路人甲
131610760887

Be the first one to answer this question!
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link: [text](http://url.com/ "title")
  • image: ![alt](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×42
×30

question asked: 27 Nov '14, 00:21

question was seen: 831 times

last updated: 27 Nov '14, 00:21

powered by O*S*Q*A

粤ICP备14040061号-1