您的位置:首页 > 编程语言 > C语言/C++

C到C++的升级(学习笔记)

2017-03-17 17:07 183 查看

一、C++与C的关系

1.C++是C的后代,C++继承了所有C特性。

2.C语言带有许多低级语言的特性,C++在C的基础上增加了更多的语法和特性:支持面向对象(最为重要)、类型加强、函数加强、异常处理等。

3.C++的设计目标是运行效率和开发效率的统一

二、C到C++的升级

1.C++更为强调实用性

例1 C++中所有变量都可以在需要时再定义,而C语言中变量都必须在作用域开始的位置定义

int c = 0;

for(int i = 0;i < 100;i++)

{

    for(int j = 0;j < 100;j++)

    {

        c = i + j;

    }

}
2.C++中支持register关键字以兼容C语言

在C语言中无法获取register变量的地址,C++中可以获取register变量的地址(C++编译器有自己的优化方式)

对于register变量的处理由编译器决定,有单片机裸机编程经历的小伙伴可以看看Keil是怎么处理的。

3.在C语言中,重复定义多个全局变量是合法的,而在C++中是不合法的,C++拒绝这种二义性的做法。

4.struct关键字的加强

C语言中struct定义的是一组变量的集合,struct定义的标识符并不是一种新的类型,而C++中用于定义一个全新的类型

5.C++中所有的标识符必须显示声明类型,而C语言许多默认类型(潜规则)在C++中是不合法的

例2 请问 int f()与 int f(void)的区别,如果有区别,是什么?

答:如果使用C++的编译器编译,没有区别

        如果使用C的编译器编译,有区别。前者,为返回值为整型,接受任意参数的函数;后者为返回值为整型的无参数函数。

三、小结

1.C++比C更加严谨和实用

2.C++中的register只是起一个兼容的作用

3.C++编译器能够更好的优化

4.C++标识符必须显示和指明类型,C++比C更加明了直观。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: