美文网首页
关于c/c++

关于c/c++

作者: zhiwang1757 | 来源:发表于2018-12-27 13:41 被阅读0次

    1、C和C++是两种截然不同的语言,区别表现从发展历史到设计哲学到对程序员的思维影响。

    2、C语言模拟了经典计算机体系结构“单CPU内存模型”,对硬件的直接操作使得C语言能在在系统编程领域屹立不倒。

    3、C语言是面向过程的,编程的基本元素结构和函数,但是其实C语言也能用于编写面向对象的程序,Linux内核中到处都存在类似的用法。相比较而言,C++支持的编程范式过程式,面向对象,泛型,元语言,如果说C语言为程序员提供了很少的工具集(里边的每个工具都必要且锋利),那么C++向程序员提供的无疑是各种各样的工具集套件。相比于C编程,程序员的选择会更加多样性但其实也是负担。

    4、C++从带类的C发展到现在,维持了对C的兼容,从现在来看确实带来了很大的包袱,可是如果回到开始的年代,C的程序员怎么会那么容易接受它。C语言中没有bool类型,当然可以包括头文件<stdbool.h>,C++所有函数需要先声明后使用。C/C++像话调用需要遵循一定的准则,从发展的角度,C++调用C是比较常见的。与C++相比C语言中函数形参列表的void不能沈略,如果省略表示可以接受任意实参调用。

    // implementation.h---this a c++ header file

    #ifndef _IMPLEMENTATION_H_

    #define _IMPLEMENTATION_H_

    #ifdefine _cplusplus

    extern "C" {

    #endif

    #include "xxxx.h" // this is a C header

    #ifdefine _cplusplus

    ......

    ......

    .......

    }

    #endif

    #endif

    在某些场景中,也需要C调用C++,首先要将C++函数封装并以extern “C”的形式暴露出来,这样的函数才满足C语言编译和链接的规范,因为C语言不支持函数重载,自然对于C++的name magling的符号无法解析,如果你试图耍小聪明骗过编译器,也是一种未定义的行为!

    5、C/C++二进制兼容问题,数据结构的兼容以及接口的兼容。

    6、思考问题的方式,一般来说C程序员偏向bottom-up,而C++程序员则偏向top-down。

    相关文章

      网友评论

          本文标题:关于c/c++

          本文链接:https://www.haomeiwen.com/subject/zkqklqtx.html