extern unsigned int crc,length;
时间: 2024-09-06 11:06:15 浏览: 39
在这个代码片段中,`extern` 关键字用于声明变量而不在当前作用域中定义。`unsigned int` 表示这是一个无符号整型变量,`crc` 和 `length` 分别是两个独立的变量。这意味着这两个变量在当前函数或者文件之外的地方已经被声明,并且它们的值可以在其他地方通过引用的方式获取或修改。
当你在一个函数内部看到 `extern` 声明的变量时,说明这些变量实际上是全局变量或在别的函数中定义的。当需要在当前文件中访问这些变量的时候,就需要先在合适的位置提供外部变量的定义(通常是在同名文件的顶部或者其他相关文件里)。
比如,在另一个包含 `crc` 和 `length` 定义的 .h 文件中可能会有这样的内容:
```c
extern unsigned int crc;
extern unsigned int length;
```
然后在需要使用这些变量的.c文件中引入这个.h文件:
```c
#include "my_header.h"
// 在这里可以使用已声明的crc和length
unsigned int my_function() {
//...
crc = compute_crc(data, length); // 使用extern声明的变量
}
```
相关问题
extern int ddr_cfg_wr(unsigned int ddr, unsigned int addr, unsigned int val); extern unsigned int ddr_cfg_rd(unsigned int ddr, unsigned int addr);
这是两个函数的声明。第一个函数是ddr_cfg_wr,它接受三个无符号整数参数:ddr,addr和val,并返回一个整数。第二个函数是ddr_cfg_rd,它接受两个无符号整数参数:ddr和addr,并返回一个无符号整数。这些函数可能是用于配置和读取DDR(双数据率)存储器的相关设置。具体的实现代码可能在其他地方定义。
解释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等,用于在编译时控制函数的属性和行为。
阅读全文