这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » 求教全局变量和局部变量

共2条 1/1 1 跳转至

求教全局变量和局部变量

院士
2006-09-17 18:14:16     打赏
求教全局变量和局部变量



关键词: 求教     全局     变量     局部    

院士
2006-12-22 22:43:00     打赏
2楼
问 我的ICC里分几个文件存放,不同的功能模块在不同的文件.

我如何使一个变量在各个文件的子程序都能访问? 如何声明全局变量 ?

有些变量我想出了这个模块就不用了,是不是在该文件开头处声明就可以了?

除了用全局变量,还有办法在不同文件的程序间传递参数吗 ?

如何定义LONG 类型的变量,可以使其存在与Rx等寄存器,而不是在DATA区 ?并且使用又如何释放呢...

请各位大侠指点! 1: 呵呵全局变量在不同模块中实现调用可以用extern声明一下;实现函数间的参数传递的另外的好办法就是用形参,最好是指针类型的,这样有一个好处就是不会象全局变量占用系统资源而不释放。第三个问题没有试过,但是可不可以用结构题的方法来解决呢?
2: 这样吧。本模块用的,出了本模块就无效的变量,在本模块开头作如下申明:
STATIC UCHAR DATA VARIABLE1;
这个只是示例,具体的变量类型,存储类型按你的要求,static是主要的。
至于你所说的所有模块可享用的变量,可以做个头文件(*.H),将所有的系统全局变量申明下就是了,extern uchar data variable1;但在定义这个变量的模块中,要完整定义,即,你在模块1中使用variable1,你除了加入头文件外,还要在程序开头定义variable1,uchar data variable1;否则会出错的。还用问嘛,头文件指示编译器在外部找这个变量的定义,都在外部找,总得有个模块定义啊,hehe。
你的最后一个问题,诚如amoy所说,可以用结构体来实现。但程序设计要求有点小高阿,自己找本书来看吧,说起来繁,我也不是很清楚阿,^_^。
就这样了吧,希望有所帮到你。hehe
3: 非常感谢两位热心人!通过定义.h 文件以及声明变量为extern已经解决不能编译问题,但是调用到其他文件里的函数是外的时候,编译仍然提示"调用一个未定义参数的函数可能会引起未知错误"之类的提示.但不影响使用.同时发现ICC非常不稳定,偶尔会不提示错误,当然这时候根本没有进行编译!

还有就是不同文件里的函数之间好像不能互相调用 !? 我一调用就出错...现在不在家,回去看再贴出来. 4: 错误提示是这样的...每当调用一个非本文件中的函数就会有这样的错误提示:
:[warning] calling function without prototype may cause errors

但是不影响编译.

还有,有时候改代码的时候没擦干净,剩下一些杂七杂八的字符(连结束的;都没有),ICCAVR 居然也可以编译通过,我真是服了!


5: to:cctv这个警告可以不理!

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]