共2条
1/1 1 跳转至页
nbsp,nbsp c语言编译的问题 头痛!!
问
一个很简单的程序
#include "config.h"
uint32 Adc_data;
int main(void)
{
Adc_data=0x89;
Adc_data=Adc_data*0x04;
while(1)
{
Adc_data=0x89;
Adc_data=Adc_data*0x04;
Adc_data=Adc_data<<1;
Adc_data=Adc_data;
}
return(0);
}
为什么在单步运行时Adc_data的值不正确程序也不能顺序执行
如果把while中的
Adc_data=0x89;
Adc_data=Adc_data*0x04;
的两句去掉就可以正常运行了这是怎么回事呀? 答 1: 你的程序在编译的时候会被ADS优化掉的。 答 2: 1如果是这样被优化掉那如果有中断把它打断话那不是会出错吗? 答 3: 这样定义 volatile uint32 Adc_data;
#include "config.h"
uint32 Adc_data;
int main(void)
{
Adc_data=0x89;
Adc_data=Adc_data*0x04;
while(1)
{
Adc_data=0x89;
Adc_data=Adc_data*0x04;
Adc_data=Adc_data<<1;
Adc_data=Adc_data;
}
return(0);
}
为什么在单步运行时Adc_data的值不正确程序也不能顺序执行
如果把while中的
Adc_data=0x89;
Adc_data=Adc_data*0x04;
的两句去掉就可以正常运行了这是怎么回事呀? 答 1: 你的程序在编译的时候会被ADS优化掉的。 答 2: 1如果是这样被优化掉那如果有中断把它打断话那不是会出错吗? 答 3: 这样定义 volatile uint32 Adc_data;
共2条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动——B站互动赢积分】活动开启啦! | |
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |