11 尽量晚些定义变量

(1) 不得不定义变量时,再定义,防止程序抛出异常,造成不必要的麻烦

(2) 变量定义越local越好,增加可读性,减少变量污染

(3) 但是在定义类的构造函数存在循环的时候,要讲构造函数放在外面

12 是给一个类型等取别名13 尽量不要使用可变参数14 void和void* 指针的使用

void是表示无类型 即与变量与函数类型是一个有无问题

用来对函数返回值和参数进行约束

void * 是无类型指针

这种指针能够接受任何指针的赋值

而没有强制转换情况下是不能把其他指针的值赋给void *

15 如果想要在C++中使用大量的C代码需要将其放到 “C”{} 中

在C++与C的混合编程中 一定要会用 “C”{}

16 使用()的时候要注意动态内存分配17 尽量使用new / 代替 / 尽量使用C++的强制转换19 内存管理

在C语言中

烫 和 屯 是见过最多的字符

原因:在栈中 未初始化的字符默认为是 -52 也就是 0xCC 在GBK中的编码是 烫

在堆中 未初始化的字符默认为是 -51 也就是 0xCB 在GBK中的编码是 屯

C++赋予了程序员直接管理内存的能力,但是内存也是C++语言的一大难点

缺少内存回收机制(GC)

手动操作,程序员需要为内存泄漏承担后果

20 ,enum,const的使用(用于替代)

为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了修饰符,表示为内联函数

来自

int (int a, int b)

a < b ? a : b;

int main()

int a = 1;

int b = 3;

//int c = (++a, b); //头疼系统

int c = (++a, b);

(“a = %dn”, a);

(“b = %dn”, b);

(“c = %dn”, c);

(“pause”);

0;

说明1:

必须 int (int a, int b)和函数体的实现,写在一块

说明2

C++编译器可以将一个函数进行内联编译

被C++编译器内联编译的函数叫做内联函数

内联函数在最终生成的代码中是没有定义的

C++编译器直接将函数体插入在函数调用的地方

内联函数没有普通函数调用时的额外开销(压栈,跳转,返回)

说明3:C++编译器不一定准许函数的内联请求!

说明4

内联函数是一种特殊的函数,具有普通函数的特征(参数检查,返回类型等)

内联函数是对编译器的一种请求,因此编译器可能拒绝这种请求

内联函数由 编译器处理,直接将编译后的函数体插入调用的地方

宏代码片段 由预处理器处理, 进行简单的文本替换,没有任何编译过程

说明5:

现代C++编译器能够进行编译优化,因此一些函数即使没有声明,也可能被编译器内联编译

另外,一些现代C++编译器提供了扩展语法,能够对函数进行强制内联

如:g++中的(())属性

说明6:

C++中内联编译的限制:

不能存在任何形式的循环语句

不能存在过多的条件判断语句

函数体不能过于庞大

不能对函数进行取址操作

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,永久会员只需109元,全站资源免费下载 点击查看详情
站 长 微 信: nanadh666

声明:1、本内容转载于网络,版权归原作者所有!2、本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。3、本内容若侵犯到你的版权利益,请联系我们,会尽快给予删除处理!