求大神帮我看看错在哪

2019-03-24 17:44发布

include<reg.51.h>
#define uchar  unsigned char
sbit LED=P1^0;
uchar n;
void main()
{
        n++;
        if(n=50)
        {n=0;
                LED=!LED;
        }
}


有2个worings  不知道错哪 求告知
下面是警告:
Build target 'Target 1'
linking...
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C_START
    MODULE:  STARTUP.obj (?C_STARTUP)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  ?C_START
    MODULE:  STARTUP.obj (?C_STARTUP)
    ADDRESS: 000DH
Program Size: data=9.0 xdata=0 code=15
"aa" - 0 Error(s), 2 Warning(s).


此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
10条回答
ienglgge
1楼-- · 2019-03-25 12:15
除了上面说的,C_START没有用到吧。这种警告没事。可以在工程中搜索一下,C_START在哪里出现了。什么东西调用了它。没有外部声明,还是怎么着。
billliu66
2楼-- · 2019-03-25 16:33
出现此警告应是#includ<reg.51.h>,reg51.多写了个. 如修改了此处,再编译还会出现警告,那是因为if(n=50)始终成立,条件不起作用,应写成if(n==50)或if(50==n)。
霹雳十
3楼-- · 2019-03-25 16:47
 精彩回答 2  元偷偷看……
billliu66
4楼-- · 2019-03-25 18:02
include<reg51.h> //多一个'"."会导致warning
#define uchar  unsigned char
sbit LED=P1^0;
uchar n ; //此处赋初值会更好,否则会多几次空循环
void main()
{
        n++;
        if(n==50) //等于写成赋值符,有时会出Waring,有时不会,依keil版本而定
        {
              n=0;
               LED=!LED;
        }
}

//试试这个。

一周热门 更多>