![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
--------【C到C++的升级】
文章平均质量分 78
加油11
模仿模仿再模仿!
展开
-
C和C++相互调用
1 C++和C相互调用实际工程中C++和C代码相互调用是不可避免的。C++编译器能够兼容C语言的编译方式。C++编译器会优先使用C++编译的方式。extern关键字能够强制让C++编译器进行C方式的编译。extern “C”{ // do C-style compilation here}编程实验:C++调用C函数// add.c#include "原创 2018-01-11 11:19:16 · 201 阅读 · 0 评论 -
命名空间
1 C++中的命名空间在C语言中只有一个全局作用域C语言中所有的全局标识符共享同一个作用域标识符之间可能发生冲突。C++中提出了命名空间的概念:命名空间将全局作用域分成不同的部分;不同命名空间中的标识符可以同名而不会发生冲突;命名空间可以相互嵌套;全局作用域也叫默认命名空间。注意:不同的命名空间中可以定义相同命名的全局变量和函数,但是调用的时候必须采用 命名空间名字:原创 2018-01-11 16:50:59 · 261 阅读 · 0 评论 -
内联函数分析
1 常量与宏回顾C++ 中const常量可以替代宏常数定义,如: const int A = 3; #define A 3C++中是否有解决方案替代宏代码片段呢?2 内联函数C++中推荐使用内联函数替代宏代码块。C++中使用inline关键字声明内联函数。inline int fun(int a, int b){ return a < b ? a :原创 2018-01-07 17:30:13 · 204 阅读 · 0 评论 -
进化后的const分析
1 C语言中的constconst修饰的变量是只读的,本质还是变量。const修饰的局部变量在栈上分配空间。const修饰的全局变量在只读存储区分配空间。const只在编译器有用,在运行期无用。const修饰的变量不是真的常量,它只是告诉编译器该变量不能出现在赋值符号的左边。C语言中的const使得变量具有只读属性。const将具有全局生命周期的变量存储于只读存储区。const原创 2018-01-03 16:49:17 · 265 阅读 · 0 评论 -
引用
1 变量名回顾变量是一段实际连续存储空间的别名;程序中通过变量来申请并命名存储空间;通过变量的名字可以使用存储空间。问题:一段连续的存储空间只能有一个别名吗?2 引用的基本概念在C++中新增加了引用的概念: 引用可以看作是一个已定义变量的别名;引用的语法:Type& name = var;int a = 4;int& b = a; // b是a的别原创 2018-01-04 12:08:06 · 240 阅读 · 0 评论 -
C到C++的升级
1 C和C++的关系C++继承了所有的C特性。C++在C的基础上提供了更多的语法和特性。C++的设计目标是运行效率与开发效率的统一。2 C到C++的升级2.1 变量定义C++更强调语言的实用性。所有的变量都可以在需要使用时再定义。2.2 register关键字register关键字请求编译器将局部变量存储于寄存器中。在C++中依然支持register关键字(存在的目的就是为了兼容C语原创 2018-01-03 11:51:22 · 378 阅读 · 0 评论 -
新型的类型转换
1 C 方式的强制类型转化语法: (Type)(Expression)Type(Expression)如:typedef void(PF)(int);struct Point{ int x; int y;};int v = 0x12345;PF* pf = (PF*)v;char c = char(v);//gcc编译不通过,g++编译通过Poin原创 2018-01-12 11:36:13 · 226 阅读 · 0 评论 -
C++中动态内存分配
1 动态内存分配C++中的动态内存分配 C++中通过new关键字进行动态内存申请。C++中的动态内存申请是基于类型进行的。delete关键字用于内存释放。如:变量申请: Type *pointer = new Type; //…… delete pointer;数组申请: Type *pointer = new Type[N]; //…原创 2018-01-11 16:46:40 · 264 阅读 · 0 评论 -
学习C++的意义
1 常见的观点操作系统和驱动程序都是C写的,学好C足够了。C++在应用层用的比较多,学嵌入式的没必要。我以后就做驱动开发,没精力也没必要学习C++了。Linus大神都认为C++一无是处,还学它干嘛?!2 一些历史UNIX操作系统诞生之初是直接用汇编语言写成的。随着UNIX的发展,汇编语言的开发效率成为一个瓶颈。如何提高UNIX的开发效率?1971年,Ken Thompson 和 D原创 2018-01-02 17:58:27 · 1460 阅读 · 0 评论 -
函数重载分析
1 自然语言中的上下文你知道下面词汇中“洗”的含义吗?洗衣服、洗脑、洗脸、洗车、洗马桶……结论:能和“洗”字搭配的词汇有很多,“洗”字和不同的词汇搭配有不同的含义。2 重载的概念重载(Overload):同一个标识符在不同的上下文有不同的意义。如: “洗”和不同的词汇搭配有不同的含义:洗衣服、洗脑、洗脸、洗车、洗马桶……“play”和不同的单词搭配有不同的含义:pl原创 2018-01-10 11:18:55 · 266 阅读 · 0 评论 -
函数参数的扩展
1 函数参数的默认值C++中可以在函数声明时为参数提供一个默认值。当函数调用时没有提供参数的值,则使用默认值。参数的默认值必须在函数声明中指定,不能在定义中指定。问题:函数定义中是否可以出现参数的默认值?当函数声明和定义中的默认值不同时是否会发生错误?实例分析:默认参数值初探#include int mul(int x = 0);int mai原创 2018-01-08 16:55:23 · 310 阅读 · 0 评论