单片机编程和平时c语言编程的区别

我看到单片机程序都不是用的c99标准主函数是voidmain(){...}这样的也就是没有return0;这个语句所以单片机运行到这步会怎么样?还有就是一般声明变量的时候... 我看到单片机程序都不是用的c99标准

主函数是void main(){...}
这样的 也就是没有return 0;这个语句
所以单片机运行到这步会怎么样?

还有就是一般声明变量的时候都是声明的外部变量
这有什么好处么?
展开
 我来答
zhxiufan
2014-03-07 · 知道合伙人软件行家
zhxiufan
知道合伙人软件行家
采纳数:14923 获赞数:38375
国家科技进步奖

向TA提问 私信TA
展开全部
单片机的主程序要在一个循环体内才可以保证单片机稳定的运行,所以禁止出现return这个东东的在主程序中,你可能看过很多单片机程序,如果之前一直前行,到最后至少都会有一个while(1);来结束,就是将程序稳定在这个地方,以保证之前程序的“成果”。如果没有这个,程序就从此不受控而乱了。
申明变量时并不是都声明为外部变量,只有需要时才会如此声明的。
追问
可是c99规定main函数返回值必须是int的呀
追答
当然你也可以加int,这样语法上也不会出错,你return 0时相当于单片机程序勇往直前而已,最终结果是跑飞而已。
fly王彪
2014-03-07
知道答主
回答量:34
采纳率:0%
帮助的人:13.8万
展开全部
在main主函数中都有一个while语句进行循环,结果表现在单片机上,比如流水灯。单片机编程主要是与硬件结合,一般不需要返回值
至于声明变量的时候都是声明的外部变量,我同意楼上说法,根据需要去写。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
2015-10-25 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:863万
展开全部
1、单片机中C的语法一般都对 ANSI C有些扩展,及一些特殊写法 如C51扩展的 data xdata bit sbit 一类的,还有一些中断程序写法 void int() interrput 1 一类的。
2、C是一门语言,由对应平台的编译器编译成对应平台汇编的程序,各平台的汇编不一样,当然编译器也不一样 DOS上的TC2 TC3 WINDOWS上的VC 8051的C51都有自已的编译器 具体区别是由编译器决的,只能参考对应的编译手册,即使同种平台不同的编译器对C的扩展也有不同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wang12zhe
2014-03-07 · TA获得超过1636个赞
知道小有建树答主
回答量:676
采纳率:100%
帮助的人:287万
展开全部
void main 这种写法很常见,但是在有些编译器上通不过,它要求必须有返回值,但有些编译器没之歌要求,大家就用void了, 在单片机的main函数里,一般会有一个大的死循环,初始化完成后就在这个死循环里运行,所以一般不会到return这

至于声明外部变量,这个我认为你的意思是定义变量吧,而不是声明变量。定义局部变量和外部变量根据需要而定,这个不是死的

其实 只有外部变量需要声明,局部变量不需要的,注意这里的声明不是定义,要能区分变量声明和变量定义的区别
追问
可是c99规定main函数返回值必须是int的呀
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-03-07
展开全部
没区别啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式