C语言编译数组中有的加code有的不加,有什么区别

 


uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

uchar ds1302[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
都能运行,两者有什么区别
 
C在定义数组时是占用内存空间的,而code是编码的意思,在定义编码时是直接分配到程序空间的,编译后编码占用的事程序存储空间而非内存空间。
  在有些时候,定义的数组中包含的元素比较多的时候,数组的所占的存储空间就会大一些,而不希望其影响内存,而把它安排到编码空间,一定程度上可以节省内存。
keil中的code表示定义的变量存储在程序存储器中,这种变量是只读的,不可写,作用主要是节约RAM的使用,嵌入式系统的资源是有限的。

猜你喜欢

转载自www.cnblogs.com/321waiting/p/9334119.html