C++,C51,C语言有什么不同?可以混用吗?

C++,C51,C语言有什么不同?可以混用吗?,第1张

C语言是面向过程

C++是面向过程+面向对象

部分代码是可以混用的

还有那个说C++叫二级C语言的可以回去复习复习了,别跟国家二级拉到一起说

一开始C++的确是作为C语言的增强版出现的,从给C语言增加类开始,不断的增加新特性。虚函数(virtual function)、运算符重载(operator overloading)、多重继承(multiple inheritance)、模板(template)、异常(exception)、RTTI、名字空间(name space)逐渐被加入标准。1998年国际标准组织(ISO)颁布了C++程序设计语言的国际标准ISO/IEC 14882-1998。C++是具有国际标准的编程语言,通常称作ANSI/ISO C++。1998年是C++标准委员会成立的第一年,以后每5年视实际需要更新一次标准,下一次标准更新将是在2009年,目前我们一般称该标准C++。遗憾的是,由于C++语言过于复杂,以及他经历了长年的演变,直到现在(2004年)只有少数几个编译器完全符合这个标准,现在vs2005/2008等编译器使用的都是标准C++语法

另外,就目前学习C++而言,可以认为他是一门独立的语言;他并不依赖C语言,我们可以完全不学C语言,而直接学习C++。根据《C++编程思想》(Thinking in C++)一书所评述的,C++与C的效率往往相差在正负5%之间。所以有人认为在大多数场合C++ 完全可以取代C语言(然而我们在单片机等需要谨慎利用空间、直接 *** 作硬件的地方还是要使用C语言)。

现在C++由以下四个“子语言”组成:

1、C子语言。C++支持C语言的几乎全部功能,在语法上与C语言仅有极微妙的差别(如括号表达式的左右值性,具体请参考C++标准文献)。

2、面向对象的C++。C++首先作为一门面向对象的语言而闻名,这个特点在这里不再详述。

3、泛型编程语言。C++强大(但容易失控的)模板功能使它能在编译期完成许多工作,从而大大提高运行期效率。

你的提问是C51单片机的分类,就是说,特指MCS-51系列,那么MCS-51系列的单片机基本上没什么区别的,至少内核都是一模一样的。就是功能模块可能稍有不一样。比如说:

有些具有AD/DA模块,有些不具有;

有些有EEPROM(STC89C52),有些没有(AT89S52);

有些ROM有8K(AT89S52),有些只有2K;

有些RAM有256B,而有些只有128BIT;

有些40个管脚(AT89C51、89C52、89S52),有些20个管脚(AT89C2051、89C4051);

有些有内部晶振,有些没有;

但这些都是稍微一点点的区别,基本都还是算一样的。

单片机是一个很大的类,这个类下面有很多子类,C51是单片机其中一个子集,其它的子类还有PIC、AVR、Cortex、STM等。

至于楼上说的ARM,其实ARM已经有点偏离单片机的定义了,更趋向于处理器,ARM9经常用在强大的智能手机中,各种硬件资源和运算速度都不是普通单片机可以相比的,而且编程与电路方面的设计也跟单片机不太一样。ARM7类似,但现在已经基本不用ARM7了。

还有最后一个PLC,看到PLC就知道他不是专业,可能是复制来的。PLC我们现在正在学,其实是一种工控设备,外形就是一个大大的盒子,里面装的也是单片机,可能是PIC的,也可能是ST的,也可能是其它的,还有一些外围电路。总之,我不敢说ARM不属于单片机,但PLC绝对不是单片机!!!

如果楼主要学,一般从40管脚的89C52或89S52开始学,也可以学STC的,STC的跟AT非常非常像,你可以简单的认为,STC是仿AT的,型号也一一对应,但STC的往往会加入一些AT没有的模块。

bit 0-1

sbit 特殊寄存器位变量声明,0-1

sfr 特殊功能寄存器声明(8位) ,范围就是特殊功能寄存器的范围

数据类型就这几个了,还有一些扩展的关键字,data,bdata、pdata、xdata、idata、code、small、compact、large、interrup(常用中断函数声明时用)、using、reentrant

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12183786.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存