美文网首页
关于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。

相关文章

  • 信息来源[持续更新]

    News, Status & Discussion about Standard C++关于C++标准的新闻、状态...

  • GeekBand之C++面向对象高级编程(下)第二周笔记

    关于C++标准库

  • 开始学习C++

    关于C++的源文件 C++的源代码(Source Code)文件扩展名为.C 或者.cpp Windows上的编译...

  • Node.js实现简易版"RSSReader"

    目的 由于经常会阅读关于C++的博客,譬如Meeting C++!的blogroll、 reddit的r/cpp等...

  • 关于c/c++

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

  • C++基础入门

    网易云课堂C++基础入门讲师:C3程序猿适用人群:C++初学者,要提高C++的朋友课程概述:关于内容特点1、知识点...

  • C++知识点

    C++基本方法: C++ memcpy C++基本特性: C++引用(vs指针) C++指针 C++封装: 将...

  • C++程序设计基础、编程抽象与算法策略

    《C++程序设计基础、编程抽象与算法策略》本书是一本关于C++语言的经典书籍,全书共计20章,主要介绍了C++的基...

  • 当C++遇上LeetCode——Vector与String

    前言 本文是当C++遇上LeetCode系列文章,关于本系列,请参看当C++遇上LeetCode Vector V...

  • 第二天

    今天算是正式的开始了C++的学习了,C++顾名思义,是由C衍生过来的,是C的超集,昨天已经讲了一些关于C++的一些...

网友评论

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

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