❶ 汇编语言和c语言各自优缺点
C语言编属于高级语言,具有可移植性,能够结构化编程。使用标准C语言的程序,几乎都可以不作改变移植到不同的微机平台上,对于嵌入式等的微控制芯片,属于标准C语言的部分也很少需要修改,而且程序很容易读懂。
C语言编写程序结构清晰,移植性好,容易维护和修改。
汇编语言针对不同的操作系统平台,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是汇编语言是针对专门的控制器的,所以运行速度可以精确到一个指令周期。汇编语言的程序读懂需要借助微控制器的指令手册以及各个寄存器的说明,所以很难读懂。
汇编语言编写代码实时性强,能够直接控制硬件的工作状态,但是不具有可移植性,维护和修改困难。
❷ c语言具有什么语言的优点和什么语言的特点
C语言现在已经很成熟,它的各种语法规则、思想都已经确立起来了,并对现在的很多语言产生很大的影响。但是任何事物都有其优点和缺点,C语言也不例外。下面我们分别来看一下。
C语言的优点
C语言的优点有三个:
代码量小。
运行速度快。
功能强大。
我们先看第一个优点,C语言的代码量很小,这是什么意思呢?也就是说如果你要完成同样一个功能,用C语言编写出来的程序的容量是很小的,而用其他语言编写容量就会比较大。
比如 Microsoft Word 和 WPS,它们同样都是办公软件,功能也差不多,但 WPS 的安装文件只有 50MB 左右,而 Microsoft Word 的安装文件超过 500MB,有的甚至接近 1GB。原因就是 WPS 的内核是用C语言编写的。
C语言的第二和第三个优点是它的运行速度比较快和功能强大,我们可以通过一个例子来解释。世界上总共有三大操作系统:UNIX 操作系统是用纯C语言编写的;Windows 操作系统的内核也是用C语言编写的;Linux 操作系统仍是用纯C语言编写的。
这三大操作系统的内核全部都是用C语言编写的。为什么用C编写,因为C语言的速度最快。计算机中所有的软件都是在操作系统上运行的,如果操作系统的速度很慢,那么在它基础上运行的软件的速度就更慢了。而且计算机中的所有硬件都是由操作系统控制的。
C语言的缺点
任何语言有优点就有缺点。C语言的缺点可以用下面三点来概括:
危险性高。
开发周期长。
可移植性不强。
❸ c语言为什么会诞生,c语言的优点
c语言的诞生与发展
当Fortran语言出现后,很快受到了人们的欢迎,于是更多的人开始开发各种各样的高级语言。而C语言的原型ALGOL 58语言。其发展的演化流程是:ALGOL 58(1958)-ALGOL 60(1960)-CPL(1963)-BCPL(1967)-B语言(1970)-c语言(1973)。这些语言的每一次改进都是为了解决其前身的一些缺陷。所以c语言也是如此。它的前身B语言的缺陷是过于简单且可移植性差和没有数据类型。为了解决这些问题美国贝尔实验室的丹尼斯·里奇(Dennis M.Ritchie)和肯·汤普逊(Ken Thompson)对B语言进行了改进于1973年推出了c语言。并用c语言开发了第五版的UNIX系统(原来的是由汇编语言写的)。由于这一版的UNIX系统很受欢迎,而且是发放了源代码。所以很多人就尝试了对UNIX进行改进,正是因为这一版的UNIX系统是由c语言开发的,那么人们要对UNIX系统进行改进自然要学习c语言,而c语言是一个很成功的语言,因此c语言得到了广泛的推广。
c语言被推广以后,人们又各自对c语言进行改进。于是出现了多个c语言版本,使c语言语法不统一。后来,在1978年,Dennis M.Ritchie和Brian W.Kernighan以第七版的UNIX系统为基础合着了一本影响深远的书叫《The C Programming Language》。
到了1983年,美国国家标准协会(ANSI)以这本书作为了第一个c语言的标准称为ANSI C。1989年时,又对这一标准进行扩充,称为C89。1999年时,国际标准化组织(ISO)又对C89进行扩充,称为C99。目前所有的编译系统都支持C89,绝大部分支持或不完全支持C99。
C语言的优缺点
C语言和其它编程语言相比有以下优点和缺点,这些对于初学者来说可能是不理解的,但等你学完了c语言后回过头来看自然会明白。
优点:
1.简洁
只有37个关键字,9个控制语句。
不提供输入输出语句、文件操作语句和动态内存语句,皆由库函数实现。
2语法限制不严格
例如数组下标越界、值溢出等不报错。因此使用灵活但易出错,是双刃剑。
3运算符丰富
4数据类型丰富
5程序结构化
拥有选择结构、循环结构等结构语句
以函数作为程序模块
6可移植性好
编译系统简洁,且每个编译系统都有通用的标准库函数
7可直接对硬件进行操作(最重要)
可通过指针对物理地址进行位操作
8生成目标代码质量高
因为可移植性好和可以直接对硬件进行操作。
缺点:
1c语言对数据类型和语法的限制不严格,很容易出错。
2.c语言对内存的操作很难管理
为什么学c语言
1.c语言和其它高级语言相比有以上的优点,其中最重要的就是可以对物理地址进行操作。因为c语言可以直接对硬件进行操作。所有编程语言中只有汇编语言(低级语言)比c语言快,但是汇编语言的可移植性没有c语言好。所以底层的东西例如操作系统依然得用c和汇编来实现。
2.现在流行的编程语言几乎都是面向对象的语言,c语言是面向过程的语言。也就是更侧重于每做一件事的具体步骤。因此,学习c语言你需要好好思考每一部应该做什么。在我看来,学习c语言更重要的是学习的这个过程而不是结果。现在确实用面向对象的语言编程确实会更方便。学习c语言后如果以后不从事开发底层程序的工作的话可能也不会去用它。但是学c语言的过程对你来说是非常有用的。因为,面向对象的语言隐藏了内存地址、字符串的创建和动态数据这些东西。而c语言需要考虑编程时的所有问题。这个基础对以后的所有学习来说都是非常重要的。
❹ c语言的语言特点
1、高级语言:它是把高级语言的基本结构和语句与低级语言的实用性结合起来的工作单元。
2、结构式语言:结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
4、代码级别的跨平台:由于标准的存在,使得几乎同样的C代码可用于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。C语言对编写需要进行硬件操作的场合,优于其它高级语言。
5、使用指针:可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 优点1、简洁紧凑、灵活方便
C语言一共只有32个关键字,9种控制语句,程序书写形式自由,区分大小写。把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。
2、运算符丰富
C语言的运算符包含的范围很广泛,共有34种运算符。C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C语言的运算类型极其丰富,表达式类型多样化。灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3、数据类型丰富
C语言的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据结构的运算。并引入了指针概念,使程序效率更高。
4、表达方式灵活实用
C语言提供多种运算符和表达式值的方法,对问题的表达可通过多种途径获得,其程序设计更主动、灵活。它语法限制不太严格,程序设计自由度大,如对整型量与字符型数据及逻辑型数据可以通用等。
5、允许直接访问物理地址,对硬件进行操作
由于C语言允许直接访问物理地址,可以直接对硬件进行操作,因此它既具有高级语言的功能,又具有低级语言的许多功能,能够像汇编语言一样对位(bit)、字节和地址进行操作,而这三者是计算机最基本的工作单元,可用来写系统软件。
6、生成目标代码质量高,程序执行效率高
C语言描述问题比汇编语言迅速,工作量小、可读性好,易于调试、修改和移植,而代码质量与汇编语言相当。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
7、可移植性好
C语言在不同机器上的C编译程序,86%的代码是公共的,所以C语言的编译程序便于移植。在一个环境上用C语言编写的程序,不改动或稍加改动,就可移植到另一个完全不同的环境中运行。
8、表达力强
C语言有丰富的数据结构和运算符。包含了各种数据结构,如整型、数组类型、指针类型和联合类型等,用来实现各种数据结构的运算。C语言的运算符有34种,范围很宽,灵活使用各种运算符可以实现难度极大的运算。
C语言能直接访问硬件的物理地址,能进行位(bit)操作。兼有高级语言和低级语言的许多优点。
它既可用来编写系统软件,又可用来开发应用软件,已成为一种通用程序设计语言。
另外C语言具有强大的图形功能,支持多种显示器和驱动器。且计算功能、逻辑判断功能强大。
缺点
1、 C语言的缺点主要表现在数据的封装性上,这一点使得C在数据的安全性上有很大缺陷,这也是C和C++的一大区别。
2、 C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。从应用的角度,C语言比其他高级语言较难掌握。也就是说,对用C语言的人,要求对程序设计更熟练一些。 1、对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符,aligned_alloc函数以及<stdalign.h>头文件)。
2、_Noreturn 函数标记,类似于 gcc 的 __attribute__(noreturn)。
3、_Generic关键字。
4、多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>;头文件,里面包含了线程的创建和管理函数。
5、增强的Unicode的支持,基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>.
6、删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。
7、增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s()等等。
8、增加了更多浮点处理宏。
9、匿名结构体/联合体支持,这个在gcc早已存在,C11将其引入标准。
10、静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。
11、新的 fopen()模式,(“…x”),类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。
12、新增 quick_exit()函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。
13、_Atomic类型修饰符和<stdatomic.h>头文件。
❺ C/C++和JAVA的优缺点
C语言
C语言的优点:
1.简洁紧凑、灵活方便
2.运算符丰富
3.数据结构丰富
4. C是结构式语言
5. C语法限制不太严格,程序设计自由度大
6. C语言允许直接访问物理地址,可以直接 对硬件进行操作
7. C语言程序生成代码质量高,程序执行效 率高
8. C语言适用范围大,可移植性好
9. C语言有一个突出的优点就是适合于多种 操作系统,如DOS、UNIX,也适用于多种机型
10.有效地将一个较复杂的程序系统设计任 务分解成许多易于控制和处理的子任务,便 于开发和维护
C语言的缺点:
1. C语言的缺点主要是表现在数据的封装性 上,这一点使得C在数据的安全性上做的有 很大缺陷,这也是C和C++的一大区别。
2. C语言的语法限制不太严格,对变量的类 型约束不严格,影响程序的安全性,对数组 下标越界不作检查等。从应用的角度,C语 言比其他高级语言较难掌握。
3.可重用性差
4.数据安全性差
5.难以开发大型软件和图形界面的应用软件
6.把数据和处理数据的过程分离为相互独立 的实体
7.当数据结构改变时,所有相关的处理过程 都要进行相应的修改
8.每一种相对于老问题的新方法都要带来额 外的开销
9.图形用户界面的应用程序,很难用过程来 描述和实现,开发和维护也都很困难
C++
C++优点:
1.可扩展性强
2.高效 简洁 快速
3.可移植性
4.面向对象的特性
5.强大而灵活的表达能力和不输于C的效率
6.支持硬件开发
7.程序模块间的关系更为简单,程序模块的 独立性、数据的安全性就有了良好的保障
8.通过继承与多态性,可以大大提高程序的 可重用性,使得软件的开发和维护都更为方便
C++缺点:
1.比较底层,易用性不是很好
2.多重继承和友元机制
3.标准库涵盖范围不足
4.开发周期长
5.非并行
6.掌握有难度
7.粒度封装不够
Java的优点:
1.简单性
2.面向对象性(面向对象的程度可以达到 95%)
3.健壮性
4.跨平台性
5.高性能(自动垃圾回收机制)
6.多线程
7.动态性
8.安全性
Java的缺点:
1.效率低(毋庸置疑)
2.跨平台是它最大的优点也是最大的缺点
3.复杂性(做一个项目需要很多的知识,涉 及面广)
❻ c语言的优缺点有哪些
C语言的优点有三个:
代码量小。
运行速度快。
功能强大。
任何语言有优点就有缺点。C语言的缺点可以用下面三点来概括:
危险性高。
开发周期长。
可移植性不如JAVA。
❼ 在使用单片机中,汇编语言和c语言各有什么优缺点
一、汇编语言:
缺点:汇编语言属于低级语言,难理解,编程效率低,编程容易出错。
优点:程序执行效率高,占用资源少, 方便对最底层的一些东西进行操作。
二、C语言:
缺点:危险性高,开发周期长,可移植性不如JAVA。
优点:语句少但是灵活度高,针对过程的言语相比于非结构化言语条理性很好接近人类的逻辑思维,相比于模块化言语和面向对象的言语他又比较接近底层的一些东西,而且效率也高(只比汇编低%10~20)移植性也好。
(7)c语言的优点和缺点有哪些扩展阅读:
不难看出机器语言作为一种编程语言, 灵活性较差可阅读性也很差,为了减轻机器语言带给软件工程师的不适应,人们对机器语言进行了升级和改进:用一些容易理解和记忆的字母,单词来代替一个特定的指令。
通过这种方法,人们很容易去阅读 已经完成的程序或者理解程序正在执行的功能,对现有程序的bug修复以及运营维护都变得更加简单方便,这种语言就是我们所说的汇编语言, 即第二代计算机语言。
❽ c语言比起其他语言有什么优缺点
灵活性强;
移植性大;
功能强大;
语法简单;
上手容易;
平台较多;
C++是它的扩展,并且继承了它的强大;
宝蓝公司就是靠Turbo C而闻名的;
除了宝蓝外还有微软公司的“开发者工作室”作为强大的后盾;
最后最可以证明C语言强大的是:微软公司大部分(除网页)都是用C++编写的。(因为我曾经妄想破解微软而用PeiD侦它的壳)。
❾ 在使用单片机中,汇编语言和c语言各有什么优缺点
汇编:优点:速度快,效率高,时间精确,省内存,在小程序上很实用。缺点:没有移植性,换一种单片机就得学一种汇编语言,代码很看得明白,维护起来难。c语言:优点:功能强大,高级运算功能代码量比汇编要少很多,通用性强,维护方便。缺点:没有编程基础的人入门难有点难,效率相对汇编来说低,想要精确时间不容易,占用内存大,这一点对于消费类的低端单片机来说,劣势很明显,有的otp单片机只有几百B的程序空间,有的小公司会要求用汇编。
但是,就性价比比来说,还是c比汇编高。它的优点值得你去容忍它的缺点。