我正在尝试理解这段代码(我用lab1替换地址等):
temp->item = item;
首先检查void enqueue(QueueType *q, element item)
{
QueueNode *temp=(QueueNode *)malloc(sizeof(QueueNode));
if(temp == NULL )
error("error");
else {
temp->item = item->data;
temp->link = NULL;
if( is_empty(q) ){
q->front = temp;
q->rear = temp;
}
else {
q->rear->link = temp;
q->rear = temp;
}
}
}
是否等于127.在任何一种情况下都会调用cmpb $0x7f, %al ; 127
je lab1
testb $0x7f, %al ; 127
jne lab2
lab1: testb $0x7f, %al ; 127
je lab3
。我不明白这项检查的目的。 al
执行按位AND。如果al的位为127,则结果为零。代码在testb
返回后调用,可能与此相关。