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