- - C语言是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了- - C语言是啥相关的知识,希望对你有一定的参考价值。
C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出。1978后,C语言已先后被移植到大、中、小及微型机上。它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。它的应用范围广泛,具备很强的数据处理能力,不仅仅是在软件开发上,而且各类科研都需要用到C语言,适于编写系统软件,三维,二维图形和动画。具体应用比如单片机以及嵌入式系统开发。C语言的祖先是BCPL语言。 1967年,剑桥大学的 Martin Richards 对CPL语言进行了简化,于是产生了BCPL(Basic Combined Programming Language)语言。 1970年,美国贝尔实验室的 Ken Thompson。以BCPL语言为基础,设计出很简单且很接近硬件的B语言(取BCPL的首字母)。并且他用B语言写了第一个UNIX操作系统。 在1972年,美国贝尔实验室的 D.M.Ritchie 在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。 1978年由美国电话电报公司(AT&T)贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著名的《The C Programming Language》一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并没有定义一个完整的标准C语言,后来由美国国家标准化协会(American National Standards Institute)在此基础上制定了一个C语言标准,于一九八三年发表。通常称之为ANSI C。 K&R第一版在很多语言细节上也不够精确,对于pcc这个“参照编译器”来说,它日益显得不切实际;K&R甚至没有很好表达它所要描述的语言,把后续扩展扔到了一边。最后,C在早期项目中的使用受商业和政府合同支配,这意味着一个认可的正式标准是必需的。因此(在M. D. McIlroy的催促下),ANSI于1983年夏天,在CBEMA的领导下建立了X3J11委员会,目的是产生一个C标准。X3J11在1989年末提出了一个他们的报告[ANSI 89],后来这个标准被ISO接受为ISO/IEC 9899-1990。 1990年,国际标准化组织ISO(International Organization for Standards)接受了89 ANSI C 为I SO C 的标准(ISO9899-1990)。1994年,ISO修订了C语言的标准。 1995年,ISO对C90做了一些修订,即“1995基准增补1(ISO/IEC/9899/AMD1:1995)”。1999年,ISO又对C语言标准进行修订,在基本保留原来C语言特征的基础上,针对应该的需要,增加了一些功能,尤其是对C++中的一些功能,命名为ISO/IEC9899:1999。 2001年和2004年先后进行了两次技术修正。 目前流行的C语言编译系统大多是以ANSI C为基础进行开发的,但不同版本的C编译系统所实现的语言功能和语法规则又略有差别。 2011年12月8日,ISO正式公布C语言新的国际标准草案:ISO/IEC 9899:2011,即C11。 新的标准修提高了对C++的兼容性,并将新的特性增加到C语言中。新功能包括支持多线程, 基于ISO/IEC TR 19769:2004规范下支持Unicode,提供更多用于查询浮点数类型特性的宏定义和静态声明功能。这些新特性包括: ● 对齐处理(Alignment)的标准化(包括_Alignas标志符,alignof运算符, aligned_alloc函数以及<stdalign.h>头文件。 ● _Noreturn 函数标记,类似于 gcc 的 __attribute__((noreturn))。 ● _Generic 关键字。 ● 多线程(Multithreading)支持,包括:_Thread_local存储类型标识符,<threads.h>头文件,里面包含了线程的创建和管理函数。 ● 增强的Unicode的支持。基于C Unicode技术报告ISO/IEC TR 19769:2004,增强了对Unicode的支持。包括为UTF-16/UTF-32编码增加了char16_t和char32_t数据类型,提供了包含unicode字符串转换函数的头文件<uchar.h>. ● 删除了 gets() 函数,使用一个新的更安全的函数gets_s()替代。 ● 增加了边界检查函数接口,定义了新的安全的函数,例如 fopen_s(),strcat_s() 等等。 ● 增加了更多浮点处理宏。 ● 匿名结构体/联合体支持。这个在gcc早已存在,C11将其引入标准。 ● 静态断言(Static assertions),_Static_assert(),在解释 #if 和 #error 之后被处理。 ● 新的 fopen() 模式,(“…x”)。类似 POSIX 中的 O_CREAT|O_EXCL,在文件锁中比较常用。 ● 新增 quick_exit() 函数作为第三种终止程序的方式。当 exit()失败时可以做最少的清理工作。 ● _Atomic类型修饰符和<stdatomic.h>头文件。
编辑本段特点
1. C是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。 2.C是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。 3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大,可以实现决策目的的游戏。 4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX等等;也适用于多种机型。 C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
编辑本段特色
指针是C语言的一大特色,可以说是C语言优于其它高级语言的一个重要原因。就是因为它有指针,可以直接进行靠近硬件的操作,但是C的指针操作不做保护,也给它带来了很多不安全的因素。C++在这方面做了改进,在保留了指针操作的同时又增强了安全性,受到了一些用户的支持,但是,由于这些改进增加语言的复杂度,也为另一部分所诟病。Java则吸取了C++的教训,取消了指针操作,也取消了C++改进中一些备受争议的地方,在安全性和适合性方面均取得良好的效果,但其本身解释在虚拟机中运行,运行效率低于C++/C。一般而言,C,C++,java被视为同一系的语言,它们长期占据着程序使用榜的前三名。 参考技术A C语言是一种计算机程序设计语言。它既具有高级语言的特点,又具有汇编语言的特点。
参考资料:http://baike.baidu.com/view/378391.htm
参考技术B C语言人和计算机交流的一种语言
类似
中文
人与人交流的一种语言
同理
人与人交流有中文,英文等
人和计算机交流有c,c++,C#,java,delphi 等等
其次
例如英语和中文用的人很多
c语言用的人也很多
最后
语言有层次之分
类似
最开始的象形文,铭文,到现在的简体汉字
计算机则是机器语言0101,汇编语言,c语言,c++语言(本路径是代表)
总结
c语言可以吃,很美味的,老板,再给我来一壶酒,2斤牛肉,一盘c语言 参考技术C 一种新式的计算机语言。在原有计算机编辑语言的基础上集聚易学易懂的吧编程工具 参考技术D c语言么,就像一个处女,拥有着让男人充满成就感的结果,同时伴随着自身续航的困扰。如果你想上她,你就要去了解她,还要去纠结过程中自己的续航能力。当某天你成功的爽快了,你就可以很自豪的,拍拍屁股,离开她,去找比她更美丽,更爽的c++/vb。。
这在 C 语言中是啥意思? [复制]
【中文标题】这在 C 语言中是啥意思? [复制]【英文标题】:What does this mean in C language? [duplicate]这在 C 语言中是什么意思? [复制] 【发布时间】:2014-02-01 05:48:20 【问题描述】:这在 C 语言中有什么作用,请用简化的例子解释一下?
void KidLogic::doCommand()
【问题讨论】:
这不是C
,这是C++
。一种相似但不同的语言。
对不起,这不是C,
投票重新开放。在这个问题中,没有可以解释为附加到类名的冒号。
@CharlesBailey 我认为这个问题的答案确实涵盖了这个问题。也许应该更改原始问题的标题?
@Stijn:这个问题与这个问题无关;该问题中的任何内容都没有解释发布的代码如何不是 C,因此这里没有合适的答案。这可能不是一个好问题,但肯定不是那个问题的重复。
【参考方案1】:
在 C 中,它没有任何意义。
这是 C++,这意味着 KidLogic
命名空间或类有一个 doCommand
函数什么都不做。
【讨论】:
【参考方案2】:它看起来像 C++,而不是 C。
它是类(或命名空间)KidLogic
的方法doCommand
的定义。
【讨论】:
以上是关于- - C语言是啥的主要内容,如果未能解决你的问题,请参考以下文章