求助,keil C的问题

[复制链接]
4841|21
 楼主| 低功耗 发表于 2008-12-4 17:33 | 显示全部楼层 |阅读模式
不知为什么以下程序在我的keil uVision3中编译不通过?麻烦大伙帮忙看看是什么问题.
#include <reg52.h>
#define uchar unsigned char
void main(void)
{       
       uchar n=0x01;            
       P1=0xff;    
       uchar a=0x01;
       
}

 楼主| 低功耗 发表于 2008-12-4 17:35 | 显示全部楼层

自顶

不知为什么将P1=0xff放在最后就能编译通过。是我的问题还是编译器的问题呢?
 楼主| 低功耗 发表于 2008-12-4 17:40 | 显示全部楼层

想了很久都不知道是什么问题。

大伙们,能帮我复制到你的keil C中,看是否存在这样的问题吗?
zyok 发表于 2008-12-4 18:09 | 显示全部楼层

变量不能定义在语句后...

zyok 发表于 2008-12-4 18:11 | 显示全部楼层

这是编译器决定的,有些编译器可以

ljm810010 发表于 2008-12-4 18:13 | 显示全部楼层

uchar a=0x01;变量声明必须放在函数起始处

 楼主| 低功耗 发表于 2008-12-4 18:23 | 显示全部楼层

很多谢大伙们!

每来一次21IC总会有所收获!
原野之狼 发表于 2008-12-4 19:50 | 显示全部楼层

这样可以。

#include <reg52.h>
#define uchar unsigned char
void main(void)
{       
       uchar n=0x01;            
       P1=0xff;    
      {
       uchar a=0x01;
      } 
}

ayb_ice 发表于 2008-12-4 21:34 | 显示全部楼层

标准的C不可以这样的

最最 发表于 2008-12-4 22:20 | 显示全部楼层

学习了,从前都没注意到这个

weishg 发表于 2008-12-5 15:06 | 显示全部楼层

re :原野之狼

#include <reg52.h>
#define uchar unsigned char
void main(void)
{       
       uchar n=0x01;            
       P1=0xff;    
      {
       uchar a=0x01;
      } 


这样定义好像a的作用域只在最里面那一级的{},是这样的吗??
chen3bing 发表于 2008-12-5 15:22 | 显示全部楼层
耕在此行 发表于 2008-12-5 21:48 | 显示全部楼层

呵呵 上次居然没看出问题>

dspjs 发表于 2008-12-5 21:48 | 显示全部楼层

re

那a不是只坐家里看日出着啊.潜水学习中。
saul2006 发表于 2008-12-5 23:31 | 显示全部楼层

这里n和a有什么区别了?

我也不懂,为什么n不用{}括起来就不会出问题呀?
这里n和a有什么区别呢?请教。。。
王紫豪 发表于 2008-12-6 01:29 | 显示全部楼层

C99 标准可以这样!!

weishg 发表于 2008-12-6 14:31 | 显示全部楼层

re

标准c规定局部变量要在函数体或者模块的最前面定义
在这里n在main的开头,作为main的局部变量
而a如果不加{},则a也是main的局部变量,也需要在前面定义
但是如果加了{},则a变成了该{}模块内的局部变量,即a的作用域只在{}内
而n的作用域在整个main都有效

这是我的理解,欢迎高手点评
腾腾 发表于 2008-12-6 16:43 | 显示全部楼层

这样

#include <reg52.h>
#define  uchar unsigned char 
void main(void)
{       
       uchar n,a;
    n=0x01;            
    P1=0xff;    
        a=0x01;     
}
saul2006 发表于 2008-12-6 16:50 | 显示全部楼层

学习了

学习了,要放在起始地方
孤单£风 发表于 2008-12-6 17:31 | 显示全部楼层

那位进来回答一下,谢谢了啊

您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部