摘要
这是关于C51中使用循环移位等函数的头文件定义的分析
源代码
#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
说明
- extern作用是声明这是外部函数,定义是在别的地方进行的。
- 或者说这是C语言嵌入汇编语言中声明引用了汇编语言子程序;
举个栗子
#include
#include
#define uint unsigned int
#define uchar unsigned char
void delay(uchar);
uchar temp;
void main()
{
temp = 0xfe;
while(1)
{
P1 = temp;
delay(100);
temp = _crol_(temp,1);
}
}
void delay(uchar time)
{
uchar i,j;
for(i = time;i > 0;--i)
for(j = 110;j > 0;--j);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)