用Keil编译单片机程序时,我定义了一个局部变量但没使用,(此时编译器警告set but neve
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Keil编译单片机程序时,我定义了一个局部变量但没使用,(此时编译器警告set but neve相关的知识,希望对你有一定的参考价值。
用Keil编译单片机程序时,我定义了一个局部变量但没使用,(此时编译器警告set but never used),我检查栈内存的时候找不到该变量,请问该变量是存在哪里了?还是直接丢弃了?跪求单片机大神解答
参考技术A 该变量是存在哪里了?--被其它变量覆盖了
还是直接丢弃了?
--也算是丢了。追问
我在网上查了一下,说局部变量在定义的时候分配的栈内存,不应该是每个变量都会有自己的栈空间吗,难道说一定要使用了才会给它分配内存?
追答说局部变量在定义的时候分配的栈内存,...
--不过是凭空的、信口开河而已。
难道说一定要使用了才会给它分配内存?
--Keil软件,其优化编译的智能性,不是一般人能理解的。
--不仅的变量。
--你还可以写一个函数,但是,你不调用它。
--编译后,你再找找,这个函数,它存在吗?
也就是说是Keil把这些没用到的东西都优化掉了,也可以理解,毕竟本来内存就不多。谢谢啦
本回答被提问者采纳 参考技术B 应该是编译器直接优化了,可以不管它。追问现在在做一个调试小工具,就是要找到这些变量所在的地址,然后读取变量的值
参考技术C 找出这个警告的前面的名称去搜索就知道了追问在哪搜索?
参考技术D 万怎么用codeblocks代替keil写和编译单片机程序?
keil用着没codeblocks爽,刚下的最新版keil4还破解不了
我不需要codeblocks生成hex文件,我只需要它能编译单片机程序,然后我再粘贴过keil生成hex文件
你刚开始不习惯,但你用久点了就会习惯你所用到的功能了。keil的破解文件网上很多的啊 参考技术A
codeblocks里边好些没有单片机的头文件,给你个keil4,内含注册机
以上是关于用Keil编译单片机程序时,我定义了一个局部变量但没使用,(此时编译器警告set but neve的主要内容,如果未能解决你的问题,请参考以下文章