十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
在keil C51中,直接调用库函数:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:主机域名、虚拟主机、营销软件、网站建设、安化网站维护、网站推广。
#includeintrins.h // 其中包含了对部分汇编指令的调用申明
_nop_(); // 产生一条NOP指令
_push_(acc); // 产生一条push指令
以下是intrins.h的内容
/*--------------------------------------------------------------------------
INTRINS.H
Intrinsic functions for C51.
Copyright (c) 1988-2004 Keil Elektronik GmbH and Keil Software, Inc.
All rights reserved.
--------------------------------------------------------------------------*/
#ifndef __INTRINS_H__
#define __INTRINS_H__
extern void _nop_ (void);
extern bit _testbit_ (bit);
extern unsigned char _cror_ (unsigned char, unsigned char);
extern unsigned int _iror_ (unsigned int, unsigned char);
extern unsigned long _lror_ (unsigned long, unsigned char);
extern unsigned char _crol_ (unsigned char, unsigned char);
extern unsigned int _irol_ (unsigned int, unsigned char);
extern unsigned long _lrol_ (unsigned long, unsigned char);
extern unsigned char _chkfloat_(float);
extern void _push_ (unsigned char _sfr);
extern void _pop_ (unsigned char _sfr);
#endif
ElemType是笔误S.base=(ElemType *)malloc (S.base, (S.stacksize+STACKINCREMENT)*sizeof(Elemtype));这个是分配一段内存,长度是(S.stacksize+STACKINCREMENT)*sizeof(Elemtype)这么多字节,因为这个函数是重新分配的,所以也要分配表s.base的存储空间
#includestdio.h
#include string.h
#define byte unsigned char
byte queue_buf[20], idx = 0;
void push(byte n)
{
if (idx 20)
queue_buf[idx++] = n;
}
byte pop()
{
byte ret = 0;
if (idx-- 0)
{
ret = queue_buf[0];
memcpy(queue_buf, queue_buf[1], idx);
}
return ret;
}
byte size()
{
return idx;
}
int main()
{
int len;
for (int i = 1; i = 20; i++)
push(i);
printf("size = %d\n", len = size());
for (int i = 1; i = len; i++)
printf("%d ", pop());
printf("\n");
return 0;
}