gpt4 book ai didi

c - 为什么在此 MPLAB C 示例中使用 `extern`?

转载 作者:行者123 更新时间:2023-11-30 16:08:23 24 4
gpt4 key购买 nike

MPLAB XC8 Compiler User Guide ,第 162 页上的示例(复制如下)将 extern 关键字与 @ 说明符结合使用。鉴于我们自己指定地址,为什么需要这样做?它本身不会分配任何内存。

我能想到的唯一原因可能是外部变量在启动时没有归零。但是,C 变量通常包含垃圾,直到您显式分配给它们为止。所以...我不知道。

也许它与头文件中的内容有关?避免多个 #include 语句导致某种“变量已声明”错误?

<小时/>

If the pointer has to access objects in data memory, you need to define a different object to act as a dummy target. For example, if the checksum was to be calculated over 10 bytes starting at address 0x90 in data memory, the following code could be used.

const char * cp;
extern char inputData[10] @ 0x90;
cp = &inputData;
// cp is incremented over inputData and used to read values there

No memory is consumed by the extern declaration, and this can be mapped over the top of existing objects.

最佳答案

这没有什么区别。主要是显式还是隐式的选择。

关于c - 为什么在此 MPLAB C 示例中使用 `extern`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59347168/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com