#include "msp430g2553.h"
#define uchar unsigned char
#define uint unsigned int
void Delay(uint t)
{
uint x,y;
for(x=t; x>0; x--)
for(y=1000; y>0; y--);
}
void main(void)
{
WDTCTL = WDTPW + WDTHOLD;
P1DIR |= BIT0;
P1OUT |= BIT0;
while(1)
{
Delay(20000);
Delay(20000);
P1OUT ^= BIT0;
}
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
比如不优化,编译器就不会对你的代码做任何优化,即使发现无用的代码,比如一个不做任何事情的FOR循环,或者给一个不使用的变量赋值,编译器都会照常编译。这些代码都会生成在你的项目中。
如果选择较低优化等级,可能会把无用代码都去掉,因为给一个不使用的变量赋值,会占用CPU资源,而不产生任何价值。所以你最终生成的代码将不包含这些无用的程序,你的FOR循环根本没有被编译进最终程序,当然也就不会有时延。
如果选择较高等级,除了做较低优化等级的事情外,还会多做很多事情。比如把很多同样跳转的IF判断语句编译到一起,或者合并同类项之类的。
作为一个软件工程师,还是很有必要搞懂这些的。
一周热门 更多>