请问马老师,关于extern的
我在一个头文件里定义了一个数组并进行了初始化赋值操作,http://cache.amobbs.com/bbs_upload782111/files_29/ourdev_555009.jpg
(原文件名:QQ截图未命名.jpg)
这个头文件已经被一个源文件引用,但是我现在在另一个源文件里又需要此数组,就用了外部声明extern uint code[],结果在外部声明的源文件中读取该数组时得到的值为0,请马老师指导! 你应该 extern flash uint code.... 回复【1楼】xpstudio2003 曹香鹏
-----------------------------------------------------------------------
试了一下,ok了,问一下,这是什么原因呢?为什么非得加flash? 不加的话原型不匹配,会出错 回复【3楼】biansf2001 花溅泪
-----------------------------------------------------------------------
那就是变量怎么声明的,在用extern外部引用时还是怎么写,是吗? mark一下 回复【4楼】jasonli
-----------------------------------------------------------------------
是的
最好这样,但有的编译器不一样,可以省略掉一些
比如,一些编译器:
定义:int x;
声明:extern x;是可以的,但是变量怎么声明的,在用extern外部引用时还是怎么写,是最好的,又通用! int型,往往是系统默认的,可以不写
比如short,其实它全名是short int
回复【2楼】jasonli
回复【1楼】xpstudio2003 曹香鹏
-----------------------------------------------------------------------
试了一下,ok了,问一下,这是什么原因呢?为什么非得加flash?
-----------------------------------------------------------------------
不加flash,可能解析成了extern (SRAM) uint code,被自动初始化为0了
还是编译器的风格吧。
编译时,应该会报错吧?因为无法链接到外部文件所定义的uint code。
页:
[1]