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的使用,嵌入式系统的资源是有限的。

若函数的形式参数是指针类型,则实参可以是指针或什么?

比如形参是char*,函数是void f(char* a) 实参可以是指针 char* p; f(p); 也可以是地址 char c; f(&c); 
也可以是数组名 char m[10]; f(m); 也可以是字符串 f("Hello world!"); 实际上 指针,是指针变量 地址,是指针常量 数组名,是指针常量 字...

上一篇:/usr/include/boost/python/detail/wrap_python.hpp:50:23: fatal error: pyconfig.h: No such file or dir


下一篇:EhLib DBGridEh组件在Delphi中应用全攻略总结(转)