C和C++的区别

C和C++的主要区别在于C是过程式编程语言,不支持类和对象,而C++是过程式和面向对象编程语言的结合;因此C++可以被称为混合语言。

使用VS或者g++作为编译器,.c和.cpp可以相互调用,gcc编译器不能编译.cpp中超过c语言特性的东西.

下面是使用vs作为编译器,.c和.cpp相互调用的例子.

.cpp调用.c

main.cpp

#include <iostream>
using namespace std;
extern "C" int add();
int main()
{
	cout << add() << endl;
	return 0;
}

add.c

int add()
{
    return 3;
}

.c调用.cpp

main.c

#include <stdio.h>
int add();
int main()
{
	printf("%d\n", add());
	return 0;
}

add.cpp

#include <iostream>
using namespace std;
extern "C" int add()
{
	cout << "add call" << endl;
    return 3;
}
C 和 C++ 的区别
CC++

C 由丹尼斯·里奇 (Dennis Ritchie) 于 1969 年至 1973 年在 AT&T 贝尔实验室开发。

C++ 由 Bjarne Stroustrup 于 1979 年与 C++ 的前身“C with Classes”一起开发。

与 C++ 相比,C 是 C++ 的子集。

C++是C的超集。C++可以运行大部分C代码,而C不能运行C++代码。

C 支持用于代码开发的过程式编程范式。

C++ 支持面向过程和面向对象的编程范式;因此C++也被称为混合语言。

C 不支持面向对象编程;因此它不支持多态、封装和继承。

作为一种面向对象的编程语言,C++ 支持多态、封装和继承。

在 C 中(因为它是一种过程编程语言),数据和函数是独立且自由的实体。

在C++中(当它用作面向对象的编程语言时),数据和函数以对象的形式封装在一起。为创建对象类提供了对象结构的蓝图。

在 C 中,数据是自由实体,可以由外部代码操作。这是因为 C 不支持信息隐藏。

在 C++ 中,封装隐藏数据以确保按预期使用数据结构和运算符。

C,作为过程式编程,它是一种函数驱动的语言。

而C++作为一种面向对象的编程,它是一种对象驱动的语言。

C 不支持函数和运算符重载。

C++ 支持函数和运算符重载。

C 不允许在结构内部定义函数。

在 C++ 中,函数可以在结构内部使用。

C 没有命名空间功能。

C++ 使用 NAMESPACE 来避免名称冲突。

命名空间是一个声明性区域,为其中的标识符(类型、函数、变量等的名称)提供范围。命名空间用于将代码组织成逻辑组并防止可能发生的名称冲突,尤其是当您的代码库包含多个库时。命名空间范围内的所有标识符彼此可见,无需限定。命名空间之外的标识符可以通过使用每个标识符的完全限定名称来访问成员。

C 使用函数进行输入/输出。例如scanfprintf

C++ 使用对象作为输入输出。例如cincout

C 不支持引用变量。

C++ 支持引用变量。

C 不支持虚拟和友元函数。

C++ 支持虚函数和友元函数。

C提供malloc()calloc()用于动态存储器分配的功能,并free()为存储器解除分配。

C++ 提供new了内存分配delete操作符和内存释放操作符。

C 不直接支持错误处理(也称为异常处理)

C++ 提供对异常处理的支持。异常用于使代码不正确的“硬”错误。

  • 39
    点赞
  • 213
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值