- 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
将调用程序编译并且和上一步生成的二进制文件进行链接
执行