gpt4 book ai didi

c - 在 IAR 中使用 "const"和 "#define"时需要不同的内存

转载 作者:太空宇宙 更新时间:2023-11-04 05:49:58 25 4
gpt4 key购买 nike

案例 1:
使用 #define 将所有常量定义为预处理器定义,例如:

  #define  x          12 

内存使用情况(来自 file_name.lst)

 2 240 bytes of CODE memory
920 bytes of DATA memory

情况 2:
使用 const unsigned int 将所有常量定义为编译器定义,例如:

  const unsigned int x = 12;

内存使用情况(来自 file_name.lst)

 2 240 bytes of CODE memory
1 byte of CONST memory
920 bytes of DATA memory

我的问题:
预处理器定义保存在哪里?闪存、RAM 还是其他地方?
这是否意味着预处理器定义是一种减少内存使用的方法?

最佳答案

预处理器定义由预处理器解析。这意味着预处理器将用定义的值(即 12)替换源代码中定义名称(即 x)的每次出现。预处理器在编译器之前运行(因此称为预处理器)。在编译时和运行时,不再有 x,编译只会在你写 x 的地方看到 12。

关于c - 在 IAR 中使用 "const"和 "#define"时需要不同的内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44694177/

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