发 帖  
原厂入驻New
[问答] 程序内存是否取决于数组索引名长度?
79 内存
分享
.....................................................1.void temp(void){unsigned char.=0;a[0]=10;}2.void temp(void){unsigned char.=0;a[.]=10;}第二个占用更多字节的程序内存..............任何人都可以解释问题的原因...
0
2020-5-14 06:44:44   评论 分享淘帖 邀请回答

相关问题

5个回答
在第一个示例中,编译器在编译时知道将赋值给(0)。在第二个例子中,它不能知道。赋值只能在运行时解析,而额外的代码是获取计数器的内容并使用它将索引计算为[]。这需要额外的代码。
2020-5-14 07:10:46 评论

举报

在第二个例子中,如果这就是使用的确切代码,那么编译器就可以知道它要去一个固定的地址。(这是我在回答中说的)。然而,我怀疑这不是OP的真实代码,并且他不知道如果编译器能够确定什么数组索引i会有什么不同。正在被访问。
2020-5-14 07:28:06 评论

举报

编译器:MP实验室v 8.92处理器:PIC32MX575F512LDoubt:每个变量在汇编语言中转换为一个符号,然后对于常数数组索引,它将转换为一些符号,作为变量,然后如何实际影响内存,还有一件事,如果我给出无符号整数作为数组索引,那么它就是taKes较少的内存作为数组索引。
MPLAB不是编译器,它只是一个IDE。如果您使用的是PIC32,那么您的编译器可能是C32或XC32。对不起,我不明白您要什么。PIC32是一个32位处理器。如果使用字节索引,则必须在使用之前将其转换为int,因此需要更多的说明。
2020-5-14 07:59:09 评论

举报

一个(需要转换)不跟随另一个(作为32位处理器)。32位处理器可以用来支持字节和半字操作。问题是MIPS架构不支持它们。除了转换,任何关于字节或半字变量的数学必须检查是否溢出,甚至更多的指令。
2020-5-14 08:08:36 评论

举报

只有小组成员才能发言,加入小组>>

110个成员聚集在这个小组

加入小组

创建小组步骤

关闭

站长推荐 上一条 /7 下一条

快速回复 返回顶部 返回列表