数码管显示

[复制链接]
535|16
 楼主| tian111 发表于 2017-11-4 10:45 | 显示全部楼层 |阅读模式
我在做数码管显示的时候,在main函数里定义时,keil编译会出错,但我把变量定义为全局变量时,反而编译成功,不知道大家有没有遇到过这个问题?
songqian17 发表于 2017-11-4 10:46 | 显示全部楼层

main函数里定义的变量是私有局部变量,其它外部函数看不见的;全局变量是公有PUBLIC的,作用于全程序。

其它函数(无论main 内或外)要引用main函数里定义的变量,应该…………
chenho 发表于 2017-11-4 10:48 | 显示全部楼层
main函数里面定义的变量就是全局变量了么?好好再去看看C语言吧。你肯定是别的子程序调用这个变量了,如果是全局变量,就老老实实在外边定义并赋初值。
gongche 发表于 2017-11-4 10:51 | 显示全部楼层


main中定义的变量,是局部变量,只能在main函数中使用。其他函数不能调用。

全局变量是,任何函数都能用,一般定义在开始。
huwr 发表于 2017-11-4 10:52 | 显示全部楼层
main函数里的变量只能作用于main函数。还是局部变量
huanghuac 发表于 2017-11-4 10:53 | 显示全部楼层

main函数里的变量只能作用于main函数。还是局部变量
happy_10 发表于 2017-11-4 10:55 | 显示全部楼层

你在main函数的第一行定义的么?
bqyj 发表于 2017-11-4 10:59 | 显示全部楼层

c的标准要求必须在语句前定义,而C++标准随处可以定义
wenfen 发表于 2017-11-4 11:01 | 显示全部楼层

c的标准要求必须在语句前定义,而C++标准随处可以定义
zhuhuis 发表于 2017-11-4 11:03 | 显示全部楼层

对,比如printf语句里面的括号里都可以定义。
 楼主| tian111 发表于 2017-11-4 11:05 | 显示全部楼层

变量一般都有自己的作用域,如果定义局部变量通不过,说明在它作用域以外的地方使用了该变量
houcs 发表于 2017-11-4 11:06 | 显示全部楼层
用引用
songqian17 发表于 2017-11-4 11:08 | 显示全部楼层
你是否定义了sbit类型变量。sbit 不能在函数里定义。sbit 变量只能是全局变量 。所以必须在函数外定义。
zhuhuis 发表于 2017-11-4 11:09 | 显示全部楼层
在main函数里定义时,keil编译会出错。是不是局部变量的问题呢
wenfen 发表于 2017-11-4 11:12 | 显示全部楼层
是的,私有的局部变量外部函数是看不见的。。。
bqyj 发表于 2017-11-4 11:14 | 显示全部楼层
这个应该是很常见的问题吧,就是定义变量的使用范围的问题而已额、、、
 楼主| tian111 发表于 2017-11-4 11:16 | 显示全部楼层
嗯,我再好好缕一缕吧,有了好消息及时通知大家,结贴喽
您需要登录后才可以回帖 登录 | 注册

本版积分规则

797

主题

8878

帖子

7

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