extern unsigned char _cror_ (unsigned char, unsigned char);
时间: 2024-06-16 15:08:05 浏览: 13
`extern unsigned char _cror_(unsigned char, unsigned char)`是一个函数声明,它声明了一个名为`_cror_`的函数,该函数接受两个`unsigned char`类型的参数,并返回一个`unsigned char`类型的值。
这个函数的作用是将第一个参数按照第二个参数指定的位数进行循环右移操作。循环右移是一种位操作,它将二进制数向右移动指定的位数,并将被移出的位重新放置在最左边。
这个函数的具体实现可能在其他地方定义,`extern`关键字表示该函数在当前文件中并没有定义,而是在其他文件中定义。在使用这个函数之前,需要确保该函数的定义已经包含在程序中。
相关问题
extern unsigned char
`extern unsigned char`是C/C++中的一种变量声明方式,它用于在一个源文件中声明一个在另一个源文件中定义的全局变量。这样做的目的是为了让多个源文件可以共享同一个全局变量,从而避免重复定义和浪费内存空间。在声明时,变量名和类型必须与定义时完全一致,而变量的初始值则不需要在声明时指定,因为它已经在定义时被赋值了。
举个例子,如果在一个源文件中定义了一个全局变量`int count = 0;`,那么在另一个源文件中就可以用`extern int count;`来声明这个变量,从而在这个源文件中使用它。
需要注意的是,`extern`关键字只是用来声明变量,而不是定义变量。因此,在使用`extern`声明变量时,不需要为变量分配内存空间,而是需要在定义变量时为其分配内存空间。另外,如果在多个源文件中都使用了`extern`声明同一个变量,那么这些声明必须完全一致,否则会导致编译错误。
解释INTRINS.H Intrinsic functions for C51. Copyright (c) 1988-2010 Keil Elektronik GmbH and ARM Germany GmbH All rights reserved. --------------------------------------------------------------------------*/ #ifndef __INTRINS_H__ #define __INTRINS_H__ #pragma SAVE #if defined (__CX2__) #pragma FUNCTIONS(STATIC) /* intrinsic functions are reentrant, but need static attribute */ #endif 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); #if defined (__CX2__) extern int abs (int); extern void _illop_ (void); #endif #if !defined (__CX2__) extern void _push_ (unsigned char _sfr); extern void _pop_ (unsigned char _sfr); #endif #pragma RESTORE #endif
这段代码是关于C51芯片的Intrinsic函数的头文件,Intrinsic函数是指直接嵌入到程序中的函数,不需要进行函数调用,在编程中可以提高效率。该文件定义了一些Intrinsic函数,比如_nop_、_testbit_、_cror_、_iror_、_lror_、_crol_、_irol_、_lrol_等等,这些函数可以直接在程序中使用。此外,该文件还定义了一些宏,如SAVE、FUNCTIONS、RESTORE等,用于在编译时控制函数的属性和行为。