龙空技术网

大话C语言:C语言的前世今生

职创未来武汉中心 94

前言:

如今兄弟们对“c语言说明书”可能比较重视,各位老铁们都需要分析一些“c语言说明书”的相关资讯。那么小编在网上收集了一些对于“c语言说明书””的相关内容,希望我们能喜欢,你们快快来了解一下吧!

1 C语言简介1.1 C语言发展历

C语言的发展史可以追溯到20世纪60年代,它起源于一种更早的高级编程语言Agol 60。随后,剑桥大学的研究人员在此基础上发展出了CPL语言,进而简化为BCPL语言。在这个过程中,C语言的前身逐渐浮出水面。

1978年,丹尼斯·里奇(Dennis Ritchie)与布莱恩·科尔尼(Brian Kernighan)合作出版了著名的《The C Programming Language》一书,该书对C语言的标准和规范进行了详细的阐述,使得C语言成为了最为广泛流传的编程语言之一。

C语言主要发展历程包括:

1972年C语⾔在贝尔实验室诞⽣. 丹尼斯·里奇 参考B语言开发。1970-80年代,C语言被⼴泛应用,产生很多不同的C语言版本。程序可移植性比较差。1983年,美国国家标准委员会(ANSI) 成⽴⼀个小组来制定C语⾔的标准。 C语言支持哪些语法、支持哪些功能 等等。1989年,通过了C语言的第⼀个标准-C89标准。1990年,国际标准化组织(ISO) 和 国际电工委员会(IEC) 将 C89标准当做国际的C语言标准。 C89和 C90指的是同⼀个标准。1994年 ISO和 IEC 对 C89标准进行修订,发布了 C94标准。 由于并没有增加新的语法特性,还是叫做 C89或者C90。1995年 ISO和IEC再次做了修正,发布了C95 标准。1999年 ISO 和 IEC 发布了C语⾔新标准-C99标准。 C语言第⼆个标准。在该标准中,新增许多实用的C语言语法特性,例如,增加新的关键字、可变长数组等等。2007年,重新修订了C语言。2011年, 发布新的版本。新增了⼀些语法,泛型、国际化支持。 目前为止最新版本是 C11。1.2 标准的影响可将C语⾔的标准理解为C语⾔说明书。但其并没有强制性约束⼒。

如:微软拿到标准,认为有些标准不合理,不⽀持。

微软认为某些特性⾮常好,但标准中没有,微软可以修改标准,新增语法.

如果编译器不⽀持标准,我们即使使用标准中的语法仍然会报错。编译器版本也会影响程序。因此,编写程序之前要确定编译器版本。1.3 常用的C/C++编译器微软公司的Visual Studio苹果公司的XCode英特尔的Intel C++Linux 默认使⽤的编译器GCC/G++,它们对对标准支持最好

补充知识:

GNU Compiler Collection(gcc),即GNU编译器套件。gcc是一套由 GNU 开发的编程语言编译器。它是一套以 GPL 及 LGPL 许可证所发行的自由软件,也是 GNU计划的关键部分,亦是自由的类Unix 及苹果 MacOS 操作系统的标准编译器。

如果操作系统没有安装gcc,参考以下命令安装gcc编译器:

# 安装gccwhccf@whccf-VirtualBox:~$ sudo apt-get install gcc# 查询一下gcc编译器whccf@whccf-VirtualBox:~$ gcc -vUsing built-in specs.COLLECT_GCC=gccCOLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapperOFFLOAD_TARGET_NAMES=nvptx-noneOFFLOAD_TARGET_DEFAULT=1Target: x86_64-linux-gnuConfigured with: ../src/configure -v --with-pkgversion='Ubuntu 7.5.0-3ubuntu1~18.04' --with-bugurl= --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnuThread model: posixgcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) 
2 第一份代码HelloWorld
#include <stdio.h>int main() {    printf("hello world\n");    return 0;}
3 代码分析include头文件包含#include的意思是头文件包含,#include <stdio.h>代表包含stdio.h这个头文件使用C语言库函数需要提前包含库函数对应的头文件,如这里使用了printf()函数,需要包含stdio.h头文件头文件:在c语言中后缀名为h的文件被称为头文件,头文件就像一本书的目录,当我们想使用某本书里的内容时,只需把目录(头文件)引进来就可以了。main函数程序的入口,一个程序有且只有一个main函数入口{}叫代码块,一个代码块内部可以有一条或者多条语句所有的可执行语句必须是在代码块里面C语言每句可执行代码都是";"分号结尾所有的#开头的行,都代表预编译指令,预编译指令行结尾是没有分号的printf函数printf是C语言库函数,功能是向标准输出设备输出一个字符串printf(“hello world\n”);\n的意思是回车换行return语句return代表函数执行完毕,返回return代表函数的终止在main函数中return 0代表程序执行成功

标签: #c语言说明书