[英]Why is `extern` used in this MPLAB C example?
在MPLAB XC8 编译器用户指南 中,第 162 页上的示例(复制如下)将extern
关键字与@
说明符结合使用。 鉴于我们自己指定地址,为什么需要这样做? 它本身不会分配任何内存。
我能想到的唯一原因可能是 extern 变量在启动时没有归零。 但是,C 变量通常包含垃圾,直到您显式分配给它们。 所以……我不知道。
也许它与它在头文件中有关? 避免多个#include
语句导致某种“变量已声明”错误?
如果指针必须访问数据存储器中的对象,则需要定义一个不同的对象来充当虚拟目标。 例如,如果要计算从数据存储器中地址 0x90 开始的 10 个字节的校验和,则可以使用以下代码。
const char * cp; extern char inputData[10] @ 0x90; cp = &inputData; // cp is incremented over inputData and used to read values there
extern 声明不消耗内存,这可以映射到现有对象的顶部。
没有什么不同的。 这主要是显式与隐式的选择。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.