我目前正在弄清楚其他人的代码的功能和结构,如果您对此有任何建议,也将不胜感激。
无论如何,我遇到了一些外部行中包含的单词。这是我遇到的几行代码。
extern unchar code Sdrr[];
extern SensLocationStruct code SensLocation[];
extern SensorConfigStruct code SensorConfig[];
extern unchar code DefaultFruData[];
extern FruLocationStruct code FruDevice[];
现在,我所说的单词是“代码”。
筛选完代码后,看不到“ code”一词的特殊声明或定义。似乎以后都不会在函数中调用它。它仅出现在这些extern语句中。
结构为:
typedef struct
{
unsigned char device;
unsigned char addr;
unsigned char bus;
} SensLocationStruct;
typedef struct
{
unsigned char SensNum;
unsigned char device;
unsigned char IOType;
unsigned char regIO;
unsigned char calib;
} SensorConfigStruct;
typedef struct
{
unsigned char device;
unsigned char addr;
unsigned char bus;
unsigned char frusize;
} FruLocationStruct;
有谁知道这是什么或做什么?一切都会有帮助的。
最佳答案
通常用于定义变量所在的存储空间。英特尔使用von Neumann architecture。只有一个地址空间,像0x100这样的地址可以清楚地标识目标。另一方面,Harvard architecture具有两次此地址:在程序代码存储器和数据存储器空间中。 8051系列具有三个存储空间:ProgramCode,InternalRAM和externalRAM。它们每个都需要不同的指令才能在汇编程序级别进行访问。