传智播客旗下品牌:  黑马程序员  |  博学谷  |  传智专修学院

改变中国IT教育,我们正在行动     全国咨询热线:400-618-4000

C++培训之CC++混合编程技术揭秘

更新时间:2015年12月28日15时55分 来源:传智播客C/C++学科

  1. C/C++语言概述
  2. 是一种通用编程语言,广泛用于系统软件和应用程序的开发。为了移植和开发UNIX操作系统,由丹尼斯里奇和肯汤普逊与1969年到1973年间以B语言为基础在贝尔实验室设计和开发出来的。
  3. 语言具有高效、灵活、功能丰富、表达力强和较高可移植性等特点,在程序员中备受青睐,成为最近25年使用最为广泛的编程语言。
        
 
目前,C语言编译器普遍存在于各种不同的操作系统中,例如Microsoft WindowsMac OS XLinux,Unix等。C语言的设计影响了众多后来的编程语言,例如C++Objective-CJavaC#等。
 
贝尔实验室比雅尼·斯特劳斯特鲁普博士在20世纪80年代发明并实现了C++。
  • 语言发展大概可以分为三个阶段:
第一阶段从80年代到1995年。这一阶段C++语言基本上是传统类型上的面向对象语言,并且凭借着接近C语言的效率,在工业界使用的开发语言中占据了相当大份额;
第二阶段从1995年到2000年,这一阶段由于标准模板库(STL)和后来的Boost等程序库的出现,泛型程序设计在C++中占据了越来越多的比重性。当然,同时由于JavaC#等语言的出现和硬件价格的大规模下降,C++受到了一定的冲击;
第三阶段从2000年至今,由于以LokiMPL等程序库为代表的产生式编程模板元编程的出现,C++出现了发展历史上又一个新的高峰,这些新技术的出现以及和原有技术的融合,使C++已经成为当今主流程序设计语言中最复杂的一员。
诚然编程语言技术演进很快,然而 C/C++作为通用语言拥有极其强大的生命力,这正是C/C++在编程语言排行榜上使用能够傲视群雄的关键所在。
 
  1. C++的函数重载的本质
如果了解C的朋友应该知道C语言没有函数重载的概念,在C语言中函数名不能相同;
那么C++脱胎于C语言,实现重载的本质是什么呢?
 
下面写一个简单的C语言代码并查看符号表当中的标识
 
 
下面我们稍微修改一下成为C++代码
 
查看符号表发现符号表中名字原来被改变了
 
 
  1. 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/