全国咨询/投诉热线:400-618-4000

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

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

  1. 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/