更新时间:2015年12月28日15时55分 来源:传智播客C/C++学科 浏览次数:
C/C++语言概述
是一种通用编程语言,广泛用于系统软件和应用程序的开发。为了移植和开发UNIX操作系统,由丹尼斯里奇和肯汤普逊与1969年到1973年间以B语言为基础在贝尔实验室设计和开发出来的。
语言具有高效、灵活、功能丰富、表达力强和较高可移植性等特点,在程序员中备受青睐,成为最近25年使用最为广泛的编程语言。
目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft Windows, Mac OS X, Linux,Unix等。C语言的设计影响了众多后来的编程语言,例如C++、Objective-C、Java、C#等。
是一种一种广泛使用的计算机程序设计语言。它是一种通用程序设计语言,静态数据类型检查,支持多重编程范式,例如过程化程序设计、数据抽象化、面向对象程序设计、泛型程序设计、基于原则设计等。
贝尔实验室的比雅尼·斯特劳斯特鲁普博士在20世纪80年代发明并实现了C++。
语言发展大概可以分为三个阶段:
第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;
第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于Java、C#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;
第三阶段从2000年至今,由于以Loki、MPL等程序库为代表的产生式编程和模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。
诚然编程语言技术演进很快,然而 C/C++作为通用语言拥有极其强大的生命力,这正是C/C++在编程语言排行榜上使用能够傲视群雄的关键所在。
C++的函数重载的本质
如果了解C的朋友应该知道C语言没有函数重载的概念,在C语言中函数名不能相同;
那么C++脱胎于C语言,实现重载的本质是什么呢?
下面写一个简单的C语言代码并查看符号表当中的标识
下面我们稍微修改一下成为C++代码
查看符号表发现符号表中名字原来被改变了
C++中调用C语言
从上一章节可以看出来,C++语言和C语言对符号表有不同的处理。由于C++兼容C语言的特性,所以C++提供了能够跨语言调用的方法去调用C语言函数。
那么这个利器就是----------extern “C”关键字,也就是说在C中不存在这样一个关键字。
那么关键字的用途就是用以表示该函数是C风格的函数,这样最终在链接的时候会去寻找C相应处理的符号表而不会导致找不到标识。
首先以extern “C”修饰C函数的声明
然后在源代码中实现相应的函数代码
先只编译test_header.c
将调用程序编译并且和上一步生成的二进制文件进行链接
执行
本文版权归传智播客C++培训学院所有,欢迎转载,转载请注明作者出处。谢谢!
作者:传智播客C/C++培训学院
首发:http://www.itcast.cn/c/