[求助] 求大神帮我看看错在哪

1245525609   2015-12-11 23:30 楼主
include
#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)

应该是 n == 50
点赞  2015-12-11 23:51
                                                         
点赞  2015-12-12 08:14

include变成reg51.h,然后是n==0
世间万物皆系于一键之上~
点赞  2015-12-12 08:39
一切尽在不言中,,,
其实楼上已经说很清楚了,所以,如果还是有问题的话,最好是对照例程代码仔细的看
点赞  2015-12-12 09:18
同意4楼更改头文件的观点,但是应该是if(n == 50),而不是n == 0
点赞  2015-12-12 09:50
header名稱多了一點,除非是你自定義,等同比較用==,賦值用單一個=
点赞  2015-12-12 10:36
除了上面说的,C_START没有用到吧。这种警告没事。可以在工程中搜索一下,C_START在哪里出现了。什么东西调用了它。没有外部声明,还是怎么着。
点赞  2015-12-18 21:28
出现此警告应是#includ,reg51.多写了个. 如修改了此处,再编译还会出现警告,那是因为if(n=50)始终成立,条件不起作用,应写成if(n==50)或if(50==n)。
点赞  2016-2-7 21:20
reg.51.h--> reg51.h if(n=50)应写成if(n==50) 程序改成这样应该好些吧 void main() { while(1) { n++; if(n=50) {n=0; LED=!LED; } } } 本帖最后由 霹雳十 于 2016-2-10 22:21 编辑
点赞  2016-2-10 22:16
include //多一个'"."会导致warning
#define uchar  unsigned char
sbit LED=P1^0;
uchar n ; //此处赋初值会更好,否则会多几次空循环
void main()
{
        n++;
        if(n==50) //等于写成赋值符,有时会出Waring,有时不会,依keil版本而定
        {
              n=0;
               LED=!LED;
        }
}

//试试这个。
点赞  2016-2-27 21:24
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复