keil uvision4 用c语言编译没有错误,但是个别语句被忽略了没有编译成汇编语言。怎么回事啊?

 我来答
wolf_lhy
2013-01-24 · TA获得超过6608个赞
知道大有可为答主
回答量:1090
采纳率:66%
帮助的人:535万
展开全部
你用的什么单片机呢?如果是51,这种情况应该不会出现,如果是AVR或者ARM内核的单片机,有可能是你的变量被优化了,从而导致部分代码被优化了.
两种解决办法,一是设置Keil的编译器,把优化级别调整到0,也就是禁止优化.
二是,把你的全局变量定义之前,加个 volatile,禁止编译器优化.
百度网友e6f0b5a7b
2013-01-29 · TA获得超过2193个赞
知道大有可为答主
回答量:5331
采纳率:0%
帮助的人:1911万
展开全部
1。 “这两者都使用相同的软件,有什么区别吗?”
不同软件。
2。 “为什么8051可能无法自动编译,而不调用子程序吗?”
因为用户可以是一个词的隐式调用程序的编制。
你说:“编译ARM(LPC1768)子例程被调用时,不会有任何警告,不要调用程序代码编译成”我是持怀疑态度。

无论哪种方式编程是可能的隐式调用功能,如通过函数指针。所以,不进行编译明确地调用子程序的行为明显违反了程序员的意图。有两种可能:默认的项目设置正确,需要添加一种特殊类型的指令或子程序的编译器开关或类型。
想知道的最好的两个编译西装的区别是它自己的文档。数十兆字节的文件看包使你受益无穷。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pippo仔
2013-02-05 · TA获得超过7935个赞
知道大有可为答主
回答量:1.5万
采纳率:0%
帮助的人:4785万
展开全部
单片机做的,你用什么?
如果你是51岁,这种情况应该不会发生,如果AVR和ARM核心MCU,你的变量进行了优化,导致部分的代码进行了优化。这两个解决方案,一组Keil编译器,调整优化级别设置为0,这是禁止的优化。
第二个是加入挥发性之前定义的全局变量,禁用编译器优化。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
一剑出血
高粉答主

2013-01-24 · 醉心答题,欢迎关注
知道大有可为答主
回答量:5.7万
采纳率:78%
帮助的人:1.7亿
展开全部
有可能是被优化掉了。
你可以通过调试跟踪一下程序运行情况,就知道是被优化还是出别的问题了。
更多追问追答
追问
跟踪,根本就不执行这几条语句
追答
我说的话你看不懂吗?
跟踪汇编,看看实际运行的结果,是否执行了与你期望相符的汇编代码。
优化的时候可能会把好几处的重复代码优化合并成同一段汇编代码以节省空间。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7bbac528f8
2013-01-24 · TA获得超过597个赞
知道小有建树答主
回答量:1706
采纳率:50%
帮助的人:941万
展开全部
恩,不是吧,没遇到过这样的错误
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式